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>