手冊寫的不錯,忘記的時候可以翻翻n(*≧▽≦*)n
--------------------------------------------分割線--------------------------------------------
1.插值--通用
1 <div>${expr}</div>
2.插值結合運算符
為了處理缺失變量,FreeMarker提供了兩個運算符: (用於防止對象不存在而導致的異常報錯 )
! : 指定缺失變量的默認值
?? : 判斷某個變量是否存在,返回boolean值
比如:
1 <#if item??> 2 <div>${item}</div> 3 </#if>
又或者:
1 <#if (item.name)??> 2 <div>${item.name!'admin'}</div> 3 </#if>
特別提示:
<#if (item.name)??></#if> 與 <#if item.name??></#if>是不一樣的哦,前者判斷item和name是否為空,而后者指判斷name是否為空!
3.內置函數
html :字符串中所有的特殊 HTML 字符都需要用實體引用來代替(比如 < 代替 < )
trim :去掉字符串前后的空白字符
size : 序列(seqlist)中元素的個數
string :指定格式,常用日期
例子:
1 ${item.date?string('yyyy-MM-dd HH:mm:ss')} //日期格式 2 ${item?string.number} //數字格式 3 ${item.money!?string("0.00")} 元 //金錢格式
?html 用於將字符串中可能包含的html字符,進行過濾.
4.對象的使用
obj.Map()
使用{}包住,以成對的鍵值存在;
可以混合使用.和[""],例如item.stu['name'];
5.邏輯判斷
<#if condition>...
<#elseif condition2>...
<#else>...
6.列表循環
1 <#list items as item> 2 ${item} 3 </#list>
item_index為當前變量的索引值,從0開始
item_has_next是否存在下一個對象(來辨別當前項是否是序列的最后一項的布爾值)
手冊示例:
1 <#assign seqlist=["spring","summer","autumn","winner"]>; 2 <#list seqlist as item> 3 ${item_index + 1}.${item} <#if item_has_next>,</#if> 4 </#list>
結果是按數組順序輸出!
7.assign指令創建
<#assign num=1 > (創建變量num)
<#assign num=num+1 > (替換變量num)
可以在任何地方使用訪問
8.空值(或不存在)變量的判斷
<#if item.name??></#if> (詢問變量是否存在)
${user!"Anonymous"} 或者 ${user!}(指定默認)
特別注意幾點:
FreeMarker模板語言沒有null關鍵字,所以不能判斷變量是否為Null;
FreeMarker 不能容忍引用不存在的變量,除非明確地告訴它當變量不存在時如何處理;
不存在的變量和一個值為null的變量,是一樣的。
9.特殊字符
\r 回車 \n 換行 \" 雙引號 \' 單引號 \t Tab \b 退格鍵 \\ 反斜杠 注意** > gt >= gte < lt <= lte
10.include 導入其他頁面
<#include "../header.html" />
插入另外一個指定路徑的 FreeMarker 模板文件,輸出格式是在include標簽出現的地方插入;
區分:
<@include_page path="../header.html"/>
會開始一個獨立的 HTTP 請求處理,一般不用;
JSP寫法:
<jsp:include page="path/to/some.jsp">
--------------------------------------------分割線--------------------------------------------
上面總結的都是我平時用到的一些指令語法等內容,其他沒有用到的我就暫時沒有放上來,以后會繼續補充噠n(*≧▽≦*)n!