FreeMarker常用數據處理
1.處理不存在的值
在2.3.7版本後提供該功能。以前版本出現不存在變量FreeMarker將報錯導致模板執行中斷。在Java開發中,不存在值比如null。
2.默認值
- 形式:unsafe_expr!default_expr或unsafe_expr!或(unsafe_expr)!default_expr或(unsafe_expr)!
- 默認值可空,推薦後面只跟感嘆號
- 例子:${name!"默認"}
3.檢測不存在的值
- 形式:unsafe_expr??或(unsafe_expr)??
- 比如下面判斷是否存在
<#if 對象變量 ??> //是否存在
//存在
<#else>
//不存在
<#if>
4.if else
可不存在<#else>直接</#if>結束
<#if x ==1>
doSomething
<#elseif x==2>
doSomething
<#else>
doSomething
</#if>
5.List數據
可以用於遍歷數據集合。在使用中一般處理List<Map>形式的數據集合。
- item_index:當前項在循環中的不僅索引的數值
- item_has_next:用來辨別當前項是否序列的最後一項的布爾值
<#if dataList ??> 檢測不存在(null)的值
//存在,不爲null
<#if dataList?size == 0>//集合大小
<#else>
<#list dataList as item>
${item.**!}
${ietm_index!}
${item_has_next}
</#list>
</#if>
<#else>
//不存在,爲null
<#if>