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)> 

相关推荐