情绪无限,而自由的空间有限,因此必须学会控制情绪。——《情商》
最近在开发中,经常遇到freemaker里面某些数据为空时,报错的问题,查询资料发现,需要判断为空来解决报错问题。本文将从各种数据类型来判断是否为空的问题。
1、判断对象为空
(1)freemarker中显示某对象使用${name}.
如果name为null,freemarker就会报错。如果需要判断对象是否为空:
<#if name??>
……
</#if>
当然也可以通过设置默认值${name!”}来避免对象为空的错误。如果name为空,就以默认值(“!”后的字符)显示。
(2)对象user,name为user的属性的情况,user,name都有可能为空,那么可以写成${(user.name)!”},表示user或者name为null,都显示为空。
判断为空:
<#if (user.name)??>
……
</#if>
2、判断Map数据为空
<#if master ?? && (master?size>0)>
<#list master?keys as key>
<span>${key}:${master[key]!}</span>
</#list>
</#if>
3、判断List数据是否为空
<#if tables?exists>
<#list tables as table>
${table}
</#list>
</#if>
4、解决为空的问题
(1)加个感叹号可以解决为空的问题
${(emp.group)!}
(2)加上括号,感叹号解决对象导航为空的问题
${(emp.group.name)!"group为空或者name为空"}
(3)感叹号还可以解决未定义为空的问题
```
${(a.b)!("a.b未定义")}
<#--(a.b)??判断a.b是否为空-->
<#if (a.b)??>
不为空
<#else>
为空
</#if>
<br/>
${(a.b)???string}