致谢!参考:https://elf8848.iteye.com/blog/1213430
<!-- 专题1 !对输出的空值做处理,只输出无返回值 -->
输出name的值:${name!}。如果name为null,就不会报错,什么也没输出
输出name的值:${name!"默认值"}。如果name为null,就输出”默认值”字符串
输出name的值:${name!100}。如果name为null,就输出100
输出user.name的值:${(user.name)!"默认值”},如果user或name为null,就输出默认值
输出user.name的值:${user.name!"默认值”},如果user为null会报错,如果name为null,就输出默认值
使用default内建函数来处理:${user.name?default('vakin')} (较繁琐)
${num?string('0.00')} 如果小数点后不足两位,用 0 代替
<input id="failureTime" name="failureTime" type="text" autocomplete="off" onfocus="this.blur()" class="form-control" value="${(memberEntity.failure_time)!''}" />
<!-- 专题2
??测试是否为null,返回boolean值
-->
product.color??将只测试color是否为null
(product.color)??将测试product和color是否存在null
/**freeMark****<#if><#else></#if>*******成功解决TestCustomEntity这个key未定义的问题*******/
<input id="customName" name="customName" class="form-control" type="text" <!-- TestCustomEntity?? 判断是否为空 -->
value="<#if TestCustomEntity??>${TestCustomEntity.customName}<#else></#if>"/>
<!-- 专题3 freemarker中??和?的区别 -->
??是判断对象是否为空,例如:<#if object??>object对象不为空(即object存在)</#if>
?后面要加内建函数名,例如:<#if object?exists>object对象不为空(即object存在)</#if>
<#if str??>${str?string}</#if><#--将str以字符串形式显示-->
<!-- 专题4 freemarker的内建函数 -->
${nowDate?time}<#--将现有时间以时间的格式显示,显示结果如:15:13:05-->
${nowDate?date}<#--以日期格式显示,如:2011-4-28-->(date的格式可以在freemarker.properties文件中配置)
日期格式化 ${time?string("yyyy-MM-dd")}
<input id="yearCostEndPayDate" name="yearCostEndPayDate" autocomplete="off" onfocus="this.blur()" placeholder="月-日"
type="text" class="form-control" value="${(memberEntity.year_cost_end_pay_date)?string('MM-dd')!''}" />
截取字符串 ${str?substring(0,2)}
indexof的使用 ${str?last_index_of(",")}
<#list "12,13,14,15"?split(",") as item> <!-- split的使用 -->
${item}
</#list>
${s?if_exists}
${item_index?if_exists+1}
${user.name?default('vakin')},同上
<!-- 专题5 freemarker运算符 -->
<#if score gte 60>
及格
<#elseif score gte 80 && score lte 90>
良好
<#else>
高材生
</#if>
/***不用加${},直接memberEntity.id_type==1比较***/
<#if memberEntity.id_type==1><option value="1" selected="selected">身份证</option>
<#else><option value="1">身份证</option>
</#if>
/***java里标准字符串比较需要 .equals() 方法,在freemarkder中进行了简化,字符串的比较方法和数字做到完全一样 **/
<#if str == "success">
<!-- true则执行这里 -->
</#if>
<#if str !== "error">
<!-- true则执行这里 -->
</#if>
<#if memberEntity.pay_type?? && memberEntity.pay_type==1><option value="1" selected="selected">分期</option>
<#else><option value="1">分期</option>
</#if>
<input id="statusShow" type=text class="form-control" readonly="readonly"
value="<#if memberEntity.status==1>当前会员
<#elseif memberEntity.status==2>暂停会员
<#elseif memberEntity.status==3>失效会员
<#elseif memberEntity.status==4>历史会员
</#if>"/>
/*******freeMark*******#list标签**********遍历********************/
<span>
<span>日期类型:</span>
<select id="dateType" name="dateType">
<option value="" >--全部--</option>
<#list dateTypeEnumList as dateTypeEnum>
<option value="${dateTypeEnum.getId()}">${dateTypeEnum.getName()}</option>
</#list>
</select>
</span>