Freemarker判断是否为空
1、判断对象是否为空
freemarker中显示某对象使用${name}.
但如果name为null,freemarker就会报错。如果需要判断对象是否为空:
<#if name??>
……
</#if>
当然也可以通过设置默认值${name!''}来避免对象为空的错误。如果name为空,就以默认值(“!”后的字符)显示。
对象user,name为user的属性的情况,user,name都有可能为空,那么可以写成${(user.name)!''},表示user或者name为null,都显示为空。判断为空
<#if (user.name)??>
……
</#if>
2、判断List是否为空
<#if orgList?? && (orgList?size > 0) > <#else> <li class="T-creat">您还没有企业,请创建新企业<a href="javascript:void(0)" id="add-org-a" >立即创建</a></li> </#if>
3、判断Map是否为空
用freemarker取出map值后,判断该值是否等于某一字符串,可以使用内建函数?string来进行判断。
实际代码:Data 是一个Record对象【JFinal的,其实可以理解为一个Map】。Data.get(key)根据map的key取出value对应的值。
<ConditionData>
<#list datas as Data>
<Condition>
<#list Data.getColumnNames() as key>
<${key}>
<#if Data.get(key)?exists><#if Data.get(key)?string !="null">${Data.get(key)}</#if></#if>
</${key}>
</#list>
</Condition>
</#list>
</ConditionData>