freemarker遍历list以及日期的使用
1.条件判断
if/else
<#if condition> ... <#elseif condition2> ... <#elseif condition3> ... ... <#else> ... </#if>
1. freemarker获取list的size :
Java
ArrayList<String> list = new ArrayList<String>();
Freemaker
${list?size}
2. list的遍历:
<#list animals as being>
<tr>
<td>${being.name}${being.price}<td>
</tr>
</#list>
3. 遍历MAP
<#list map?keys as k>
<option value="${k}">${map[k]}</option>
</#list>
4.list遍历中的下标序号:
_index是list的一个属性
<#list list as a>
${a_index}
</#list>
5.取LIST中第i个元素的值
${list[i]}
嵌套时前面要有括号,如下,将字符串变成list,然后取第i个元素的值
${(str?split(","))[i]}
6. list的嵌套:
<#list jsskList as jsskVO>
<#list kcList as kcVO>
<#if kcVO.kch=jsskVO.kch> (kcVO里有编号和名称,而jsskVO里只有编号)
${kcVO.kcm}
</#if>
</#list>
</#list>
7. list排序:
升序 .sort_by()
<#list list?sort_by("字段") as x>
</#list>
降序 .sort_by()?reverse
<#list list?sort_by("字段")?reverse as x>
</#list>
8.item_has_next,size使用:
<#list userList as user>
<#if !user_has_next>
共有${userList?size}最后一个用户是:${user.userName}
</#if>
</#list>
9.freemarker的日期格式化,可以使用预定义的变量
${dateVar?string.short}
${dateVar?string.medium}
${dateVar?string.long}
${dateVar?string.full}
${parameters.fieldDate?date} //标准日期转日期字符串
${parameters.fieldDate?datetime} //标准日期转日期+时间 字符串
${parameters.fieldDate?string("yyyy-MM-dd HH:mm:ss")} //标准日期转自定格式 字符串
FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format}
${book.name?if_exists } //用于判断如果存在,就输出这个值
${book.name?default(‘xxx’)}//默认值xxx
${book.name!"xxx"}//默认值xxx
${book.date?string('yyyy-MM-dd')} //日期格式
${book?string.number} 20 //三种不同的数字格式
${book?string.currency}--<#-- $20.00 -->
${book?string.percent}—<#-- 20% -->
<#assign foo=ture /> //声明变量,插入布尔值进行显示
${foo?string("yes","no")} <#-- yes -->
大小比较符号使用需要注意:(xml的原因),可以用于比较数字和日期
使用lt、lte、gt和gte来替代<、<=、>和>= 也可以使用括号<#if (x>y)>