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>