1.对于 Map<Integer, String> map= new LinkedHashMap<Integer, String>();
map.put(1, "第1位");
map.put(2, "第2位");
map.put(3, "第3位");
map.put(4, "第4位");
model.addAttribute("orderdata", map);
前台在select中使用时:
<@select name="order" list=orderdata?keys value="2" defaultOptions= {"":"--请选择顺序--"}/>
在前台遍历时:
<#list orderdata?keys as key>
${key}- $orderdata[key]
</#list>
2.判断一个attribute是否为null:
<#if orderdata?exists> .....</#if> 或 obj.attr??
过滤null和empty:
Hello ${name!} 在属性后面加感叹号即可过滤null和空字符串
Freemarker中显示某对象使用 ${name}
1.判断对象不为空
如果name为null,freemarker就会报错。
如果需要判断对象不为空:
<#if name??>
……
</#if>
当对象有属性时,对象及对象属性都有可能为空,可写成:
<#if (user.name)??>//判断对象属性不为空
……
</#if>
2、判断List是不为空
<#if userList?? && (userList?size > 0) >
<h1>List不为空</h1>
<#list userList as uInfo>
……
<#else>
<h1>显示</h1>
</#if>
3、判断Map是否为空
用freemarker取出map值后,判断该值是否等于某一字符串,可以使用内建函数 ?string 来进行判断。
实际代码:
Data 是一个Record对象【JFinal的,其实可以理解为一个Map】。
Data.get(key)根据map的key取出value对应的值。
<#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>