使用freemarker 如果对象为空或者属性为空 都会报错
${name} 假如name为空就会报错, ${user.name} user对象或者name为空也会报错
<#if name??>
假如name不为空则执行这段代码
<#else>
假如name为空则执行这段代码
</#if>
我们也可以这样使用 ${name!} 来避免这个对象或者属性为空而引起报错,加上! 就不会报错了 默认显示空字符串(当然
你要给它一个默认值也行 比如这样:${name!"tom"} 当name为空默认显示tom)
但是 ${user.name}这个情况比较特殊,user对象 和name属性都可能为空
${user.name!} 只能处理name可能为空引起的错误,当user为空的时候还是会报错
所以 ${(user.name)!} 用()括起来 这样不管哪个为空 就都不会报错了
或者name为null,都显示为空。判断为空
<#if (user.name)??>
</#if>
使用if容易出错的地方比如下面这个例子
<label>
<input <#if (pro.proElongyan!0) == 1>checked='checked'</#if> name="switch-field-1" onclick="switchStatus(this,'${pro.id}')" class="ace ace-switch ace-switch-3" type="checkbox" / >
<span class="lbl"></span>
</label>
如果<#if(pro.proElongyan!0)> 这样写会报错,看出区别了吗,就是( 和if之间没有空格 他们之间必须有空格 隔开 否则会报错