FreeMarker 对null值的处理技巧

来源:互联网 发布:java aop 日志记录 编辑:程序博客网 时间:2024/05/21 14:47
以下引用官方描述:
引用
The FreeMarker template language doesn't know the Java language null at all. It doesn't have null keyword, and it can't test if something is null or not.

1.判断是否存在,通过exists关键字或者"??"运算符。都将返回一个布尔值
user.name?exists
user.name??
<#if user.name?exists> //TO DO</#if><#if user.age??> //TO DO</#if>



2.忽略null值
假设前提:user.name为null
${user.name},异常
${user.name!},显示空白
${user.name!'vakin'},若user.name不为空则显示本身的值,否则显示vakin
${user.name?default('vakin')},同上
${user.name???string(user.name,'vakin')},同上
 
 
!default value operator,语法结构为:unsafe_expr!default_expr,
      比如 ${mouse!"No mouse."} 当mouse不存在时,返回default value;
      (product.color)!"red"  这种方式,能够处理product或者color为miss value的情况;
       而product.color!"red"将只处理color为miss value的情况

?? : Missing value test operator ,测试是否为missing value
       unsafe_expr?? :product.color??将只测试color是否为null
      (unsafe_expr)??:(product.color)??将测试product和color是否存在null
原创粉丝点击