1、空值处理运算符
FreeMarker的变量必须赋值,否则就会抛出异常。而对于FreeMarker来说,null值和不存在的变量是完全一样的。FreeMarker提供两个运算符来避免空值:
1. !:指定缺失变量的默认值;
2. ??:判断变量是否存在。
这两个符号的用法看下面的例子
2、判断字符串是否为空
<#if item.icon?? && item.icon !="">
<i class=item.icon></i>
</#if>
3、在页面里面用!避免变量没有赋值的错误
<input type="text" class="form-control" placeholder="上级组织" data-rule-maxlength="20" autocomplete="off" value="${(orgName)!''}" >
时间类型的变量
<input type="text" class="form-control" value='${(org.invalidTime?string("yyyy-MM-dd "))!""}' />
4、freemarker允许同类型的向比较,Allowed comparisons are between two numbers, two strings, two dates, or two booleans。不同类型的不能比较或+ - * /运算。
<#if org.type??&&org.type?c==orgType.code>selected</#if>
其中org.type?c==orgType.code,org.type是int类型,orgType.code是字符类型,两者不能比较,?c转成字符串后进行比较。
5、decimal,BigDecimal类型的变量在freemarker中的表示,千分位、小数点后面的位数表示方法如下
<input type="text" value="${(lat?string(',##0.0000000000'))!''}">
6、Boolean类型的展示
<input type="hidden" name="flag" id="approveFlag" value='${form.flag?string("true","flase")}'>