Freemarker的使用

1.必須通過後臺轉發到jsp才能起作用,直接訪問jsp無效
2.要將變量設置到request.setAttribute中,通過${變量名稱}進行引用
3.判斷變量是否存在
<#if firstTemp?exists> 或者 <#if firstTemp??>
4.指令的括號
<#if firstTemp?exists> 與 <#if firstTemp?exists > 右邊可以多出空格
5.日期格式化
${date?string("yyyy-MM-dd HH:mm:ss")}
若date可能不存在
${(date?string("yyyy-MM-dd HH:mm:ss"))!''}
6.判斷字符串長度
<#if myString?length>10>
7.list指令
<#list myList as item>
${item_index}表示索引
${item.myprop}表示item的屬性
${item_has_next}表示是否有下一個元素
</#list>
8.空白問題
${ctx } <==> ${ctx}
<#if a>b >  <==> <#if a>b>
9.Map變量使用
${map['mykey']}
<#if map['mykey']>
10.根據索引使用list類型變量(索引從0開始)
${myList[1]}
<#if myList[1] == "ABC">
11.引用別的jsp
<@include_page path="path/to/some.jsp"/>
12.如果引用的是freemarker的模板文件,那麼使用 <#include>
<#include "/common/navbar.html" parse=false encoding="Shift_JIS">

默認parse爲true,當成freemarker的模板文件

http://freemarker.org/docs/ref_directive_include.html

13.<#if>,<#list> 中的不能使用${},而是直接使用變量名稱

14.boolean(true/false)變量不能直接輸出,可以這樣輸出 ${myBool?c} 或者 ${myBool?string('yes','no')}

15.註釋採用<#--和-->, jsp的註釋方式不能用

16.JSON字符串的使用

<#assign dataJson = ret?eval />

ret是JSONObject,通過setAttr("ret",ret")設置過

json array長度的判斷 <#if (ret.arr?size==0)> 或 ${ret.arr?size}

在#if指令中使用,要用括號括起來,否則會出錯,即類似  <#if user?? && (ret.arr?size>0)>

list類型數據,也可以這樣計算長度

17.在變量爲null或未設置時,顯示默認值

${user!""} user爲null是顯示空白字符串

${(user.name)!""}  user或user.name爲null時顯示空白字符串

在#if指令上也可以用類似用法,<#if (user.name)??>  表示user或者user.name爲null

18.設置自增變量

<#assign i = 1 />

<#assign i = i+1 />

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章