基本用法
1、 ??
msg??
返回布尔值。如果msg为null或不存在,返回true;否则返回false。这个特性有两个用法:
三元表达式
${(msg??)? string('空', "非空")}
if表达式
<#if msg??>
msg不存在
<#else>
msg存在,值为:${msg}
</#if>
2、!
${msg!}
若msg不为空,则显示其内容;若为null或不存在,什么也不显示。${msg!'默认值'}
若msg不为空,则显示其内容若msg为null或不存在时,显示 ‘’默认值’’
易错点
如果将数据换成user对象,且name是它的一个属性,那么就需要注意user本身和user.name二者可能都为null或只有后者为null。为了保险起见,最好的做法就是将user.name用圆括号包起来。例如下面:
${((user.name)??)? string('空', "非空")}
user或name只要有其一为空,就显示“空”;若都不为null,就显示“非空”。<#if (user.name)??> user 为null或者 user.name 为null <#else> user和user.name都不为null,值为:${user.name} </#if>
${(user.name)!}
:user或name只要有其一为空,就什么都不显示,也不报错。${(user.name)!'默认值'}
:user或name只要有其一为空,就显示“默认值”。
如果日期可能为nulll,写法为:${(user.createTime?string('yyyy-MM-dd HH:mm:ss'))!}