freemark使用总结
1.下拉框中使用三元表达式:
<option value="1类" ${(bean.col5!?string="1类")?string('selected','')}>1类</option>
2.ftl页面中保留小数
<td><input type="text" class="form-control" value="${(rows[2].col7?string("0.00"))!}" readonly/></td>
3.宏的使用(下拉框案例)
1 <#macro select id data value="" defaultText="" valueField="value" textField="text"> 2 <select class="form-control input-sm select2" name="${id}" id="${id}"> 3 <option value="">${defaultText}</option> 4 <#if data?is_hash_ex> 5 <#list data?keys as key> 6 <#if key==value> 7 <option value="${key}" selected>${data[key]}</option> 8 <#else> 9 <option value="${key}">${data[key]}</option> 10 </#if> 11 </#list> 12 <#else> 13 <#list data as dataItem> 14 <#if valueField!=""> 15 <#if value==dataItem[valueField]?string> 16 <option value="${dataItem[valueField]}" selected>${dataItem[textField]}</option> 17 <#else> 18 <option value="${dataItem[valueField]}" >${dataItem[textField]}</option> 19 </#if> 20 <#else> 21 <#if dataItem==value> 22 <option value="${dataItem}" selected>${dataItem}</option> 23 <#else> 24 <option value="${dataItem}">${dataItem}</option> 25 </#if> 26 </#if> 27 </#list> 28 </#if> 29 <select> 30 </#macro>
调用:
<#import "/macro/control.ftl" as my/> <@my.select4vld id="bgyy" data=TC_bgyy value="${bean.bgyy!}" /></#if>
4.list遍历
<#list list as user> 第${user_index+1}个用户 用户名:${user.name} 年 龄: ${user.age} </#list> 遍历的时候排序: <#list list?sort as l>…</#list> <#list userList?sort_by(“age”) as user>…</#list> <#list list? reverse as l>…</#list>。reverse使用同sort相同。reverse还可以同sort_by一起使用
5.判断集合包含关系(主要用于checkBox多选框中)
1 <input name="role" type="checkbox" ${roleIds!?seq_contains(role.roleId)?string("checked", "")} value="${role.roleId}">${role.roleName} 2 ${roleIds!?seq_contains(role.roleId)?string("checked", "")}