使用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}