Freemarker中list的用法

使用list进行遍历
基本遍历:

<#list sequence as item>
${item.username}
</#list>

 

其中sequence是变量名,它代表一个list。item是我起的别名,遍历的时候,它代表LIST中的一项。

获取索引值:

<#list sequence as item>
${item_index}
</#list>

 
索引值的获取是"别名_index"的形式。如果你起的别名是user那么就用“user_index”。
需要说明的是索引值是从0开始的。

检查有没有下一个元素。

<#list sequence as item>
<#if (item_has_next)>最后一个</#if>
</#list>

 
检查有没有下一个元素的形式是"别名_has_next",这个跟获取索引值是类似的。
这个语法通常用来判断是不是最后一个元素。而且是配合if来使用。

如果想获取list里有多少个元素,可以这么写

${users?size}

 
users是list的变量名。这个可以单独使用,不需要配合<#list>。

<#break/>可以跳出循环。

在遍历的时候,还可以对list进行排序。
排序有三个命令 sort,sort_by,reverse,前两个表示启用排序,默认是升序。reverse表示的是降序。可以配合使用
如果是基本数值,字符串日期,这么写

<#list sequence?sort as item>
    ...
</#list>

 


如果是对象的话,这么写

<#list sequence?sort_by("age") as item>
    ...
</#list>

 
这是按照年龄进行升序的意思

如果我们想降序,可以配合reverse来用

<#list sequence?sort_by("age")?reverse as item>
    ...
</#list>

 
下面给出一段示例:

   <#list users?sort_by("id")?reverse as ur>
   <#if (ur.id<2)><#break/></#if>
   <#if !ur_has_next>最后一个</#if>
    index:${ur_index}  id:${ur.id} username:${ur.userName}<br/>
   </#list>
   ${users?size}

 
在这段代码中,我对users进行了遍历,并让users根据id字段进行降序排列
如果id小于2,跳出循环。
在结尾显示总共有几条记录。

 

运行的结果是这样的:

index:0 id:4 username:user4
index:1 id:3 username:user3
index:2 id:2 username:user2
4

 

要说明的是,如果值是数字的话,如果过大,会采用科学计数法,数字中间会多一个逗号,比如1,1500,这时你可用以下语法解决

{$ur.id?c}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值