Freemarker list对象取前几条数据

项目中用freemarker 做显示层,可能会遇到取出数据前几条,通过用freemarker 取数据用<#list root.list as row> ${row.title} <#/list> ,但是这种取法是取出所有的数据.

如果我想去第一条数据:

<#list arrayList as c>

    <#if c_index == 0>
      第一项的值
    


现在只想取前5条,该怎么做?代码如下:

<#assign n = list5?size /> //定义n的值为list5的大小
<#if n gt 6> //如果n大于6,页面中可能要求只显示6条           (注:gt,gte,lt,lte)
<#assign n = 6 /> //把n重定义为6
< /#if>


< #if n!=0> //防止n的值为0,也可以写成<#if n gt 0 >
< #list 0..(n-1) as i> //把前 n 条 记录赋值给 i,如果i=3,则[0,1,2]
< #assign ls5 = list5[i] /> //把list5的第i个元素赋值给ls5
< #assign isNew = list5Istrue[i] />
< tr>
< td height='25' class='z3'>.
< #if ls5.CTitle?length lt 15> //如果Ctitle的长度小于15,就
${ls5.CTitle} //就正常显示该标题
<#else> //如果大于15
${ls5.CTitle[0..15]}... //就截取前15个,并加上…

< #if isNew="true">
< img src='/model/img/new-111.gif' width='27' height='11' border='0' />
< /#if>
< /a>
< /tr>
< /#list>
< /#if>


项目中应用:

[#assign n = 0] 
[#list cocoPersonInfo.cocoPersonResues as v] 
[#assign n = n + 1] 
    
      ${v.worktime_begin}
      ${v.worktime_end}
      ${v.workplace}
      ${v.occupation}
    
[#if n > 4] 
[#break] 
[/#if] 
[/#list] 
[#if n < 5] 
[#list n..4 as i]
    
      
      
      
      
    
[/#list] 
[/#if]


效果:

Freemarker list对象取前几条数据_第1张图片





你可能感兴趣的:(freemaker,Ofbiz)