http://www.cnblogs.com/xinxin1994/p/6138063.html


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>