freemarker list用法

来源:互联网 发布:伊波拉病毒 电影 知乎 编辑:程序博客网 时间:2024/04/28 23:48

在freemarker中list是经常用到的

比如在页面中需要有个单纯的遍历(以年度为例),无需调用任何数据,很方便

代码:

这样会遇到一个问题,当数据超过3位的时候,freemarker会自动用逗号截取 格式如:2,008

如何解决呢?

1> 加.toString(),如:${(userId).toString()}
2> 加?c,如:${(userId)?c}
3> freemarker配置文件freemarker.properties加上number_format=#

判断是否为空:

1.<#if xx[0]?exists>

2.<#if xx??>

3.<#if xx?default("xxx")>

不然当没有数据的时候 ,很大很大一个黄页就等着你了

序列号:

有时候页面的table需要在第一列显示序号  只需要使用 _index 即可  不过是从0开始的 你可以+1 比如:

<#list list as a>

${a_index+1}

</#list> 

数据类型转换:

${xx?string} //字符串
${xx?number}//整数
${xx?currency}//小数
${xx?percent}//百分比

截取字符串长度:

有的时候我们在页面中不需要显示那么长的字符串,比如新闻标题,这样用下面的列子就可以自定义显示的长度

< lt. <= lte. > gt. >= gte

<#if jstbqkVO.gzdd?length lt 8>
           <a href>${jstbqkVO.gzdd?default("")}</a>
      <#else>
           <a href title="${jstbqkVO.gzdd}">${jstbqkVO.gzdd[0..3]?default("")}...</a>
</#if>

意思就是如果这个字符串的长度小于8,那么就正常显示,反之则取4位

嵌套list:

很多时候,数据库里存储的都是编号,而页面上需要显示的汉字,而且不在一张表里,看列子

<#list jsskList as jsskVO>

<#list kcList as kcVO>
           <#if kcVO.kch=jsskVO.kch> (kcVO里有编号和名称,而jsskVO里只有编号)
                  ${kcVO.kcm} 
           </#if>
   </#list>

</#list>

排序:

1.升序.sort_by()

<#list list?sort_by("字段") as x>
</#list>

2.降序.sort_by()?reverse

<#list list?sort_by("字段")?reverse as x> 
</#list>

去空格:

${xx?trim}

格式化日期:

${date?string("yyyy-MM-dd HH:mm:ss ")}
${date?string("yyyyMMdd ")}


1. freemarker获取list的size : 

Java 

Java代码  收藏代码
  1. ArrayList<String> list = new ArrayList<String>();  

Freemaker 
Javascript代码  收藏代码
  1. ${list?size}  


2. list的遍历: 

Javascript代码  收藏代码
  1. <#list animals as being>  
  2.     <tr>  
  3.         <td>${being.name}${being.price}<td>  
  4.     </tr>  
  5. </#list>  


3.list遍历中的下标序号: 

_index是list的一个属性 
Javascript代码  收藏代码
  1. <#list list as a>  
  2.      ${a_index}  
  3. </#list>   


4. list的嵌套: 
Javascript代码  收藏代码
  1. <#list jsskList as jsskVO>  
  2.    <#list kcList as kcVO>  
  3.            <#if kcVO.kch=jsskVO.kch> (kcVO里有编号和名称,而jsskVO里只有编号)  
  4.                   ${kcVO.kcm}   
  5.            </#if>  
  6.    </#list>  
  7. </#list>  


5. list排序: 
      升序 .sort_by() 
Javascript代码  收藏代码
  1. <#list list?sort_by("字段") as x>  
  2. </#list>  


     降序 .sort_by()?reverse 
Javascript代码  收藏代码
  1. <#list list?sort_by("字段")?reverse as x>   
  2. </#list>  


6. list标签遍历map: 
Javascript代码  收藏代码
  1. <#list avertisementTypeMap?keys as key>   
  2.     <option value="${key}">${avertisementTypeMap[key]}</option>   
  3. </#list>  

原创粉丝点击