`
心扬
  • 浏览: 53706 次
社区版块
存档分类
最新评论

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}

分享到:
评论

相关推荐

    freemarker

    如果全用不存在的指令,FreeMarker不会使用模板输出,而是产生一个错误消息.FreeMarker会忽略FTL标签中的空白字符.值得注意的是, /&gt; 和指令之间不允许有空白字符. 2, 插值规则 FreeMarker的插值有如下两种类型:1,...

    freemarker语法完整版

    Freemarker页面语法 A 概念 最常用的 3 个概念 sequence 序列,对应java 里的list 、数组等非键值对的集合 hash 键值对的集合 namespace 对一个ftl 文件的引用, 利用这个名字可以访问到该ftl 文件的资源 ...

    超完整FreeMarker中文教程,代码

    什么是FreeMarker? ................................................................................................. 7 我们应该阅读什么内容? .............................................................

    freemarker总结

    使用import指令导入库到模板中,Freemarker会为导入的库创建新的名字空间,并可以通过import指令中指定的散列变量访问库中的变量: ${my.mail} ${mail} 输出结果: &lt;p&gt;Copyright (C) 1999-2002 ...

    FreeMarker Demo

    这是一个java项目 下载这个示例 轻松搞定FreeMarker 包括: FreeMarker 解析javabean FreeMarker 解析map FreeMarker 解析list include标签用法

    java导出word使用freemarker模板map数据导出word带图片

    java导出word使用freemarker模板map数据导出word带图片 可以循环map 中list。 调用的2种方法在博客 https://blog.csdn.net/yjflinchong/article/details/122614203

    FreeMarker中文指导手册

    4.2 在模板中定义变量 ..................................................................................... 50 4.3 命名空间 ................................................................................

    freemarker判断对象是否为空的方法

    freemarker中显示某对象使用${name}. 但如果name为null,freemarker就会报错。如果需要判断对象是否为空: &lt;#if name??&gt; …… &lt;/#if&gt; 当然也可以通过设置默认值${name!”}来避免对象为空的错误。如果...

    FreeMark学习笔记

    使用直接指定值语法让FreeMarker直接输出插值中的值,而不是输出变量值.直接指定值可以是字符串,数值,布尔值,集合和MAP对象. 1,字符串 直接指定字符串值使用单引号或双引号限定,如果字符串值中包含特殊字符需要转义,...

    FreeMarker 手册

    4.2 在模板中定义变量 ..................................................................................... 50 4.3 命名空间 ................................................................................

    FreeMarkerXiaoAnlie

    这是一个java项目 下载这个示例 轻松搞定FreeMarker 包括: FreeMarker 解析javabean FreeMarker 解析map FreeMarker 解析list include标签用法

    cms后台管理

    就是简单的将tag_list中的内容,即“paramWrap.put(OUT_LIST, DEFAULT_WRAPPER.wrap(list));”中放入的数据遍历出来 style_2-1.html中的内容 主要是对图文列表或标题列表向上滚动的样式的,其中包含两个同样为样式...

    struts2讲义_吴峻申

    10.1 sitemesh基本使用方法 194 10.2 sitemesh高级应用 198 10.2.1 和标签的使用介绍 198 10.2.2 、和标签的使用介绍 200 附录 204 附录1 安装JBoss让它部署Web项目 204 F1.1 安装 204 F1.2 手工部署Web项目 207 ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...

    Struts课堂笔记.rar--struts2的struts.properties配置文件详解

    允许动态方法调用 struts.freemarker.manager.classname The org.apache.struts2.views.freemarker.FreemarkerManager implementation class org.apache.struts2.views.freemarker.FreemarkerManager接口名 ...

    深入浅出Struts2(附源码)

    5.1 Struts标签的使用方法 59 5.2 表单标签的共同属性 60 5.3 form标签 62 5.4 textfield、password、hidden标签 63 5.5 submit标签 65 5.6 reset标签 65 5.7 label标签 66 5.8 head标签 66 5.9 textarea...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    5.1 Struts标签的使用方法 59 5.2 表单标签的共同属性 60 5.3 form标签 62 5.4 textfield、password、hidden标签 63 5.5 submit标签 65 5.6 reset标签 65 5.7 label标签 66 5.8 head标签 66 5.9 textarea标签 66 ...

    好用的代码生成源码

    充分利用各种文件的注释 如在.xml中我们可以使用 在.properties文件中我们可以使用 #generator-insert-location 具体请查看template/insert_demo目录的内容 生成器参数配置 通过设置GeneratorProperties.set...

Global site tag (gtag.js) - Google Analytics