基本用法
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'))!}