thymeleaf数据循环

ThymeLeaf模板 ginotang 1353℃ 0评论

使用th:each迭代数据

通常我们处理的都是一系列的数据,例如文章列表、产品列表,在处理这些数据的时候,一般是把它们一条一条的迭代取出来,thymeleaf提供了th:each属性来处理这方面的数据。

例如,客户购买了多个产品,在购物车中显示产品的时候就需要列出这些产品:

Servlet代码:

跟踪数据状态

th:each属性在迭代的过程中可以跟踪数据的状态,例如:

  • 当前迭代索引,从0开始,使用index属性标识。
  • 当前迭代索引,从1开始,使用count标识。
  • 数据总量,使用size属性标识。
  • 当前迭代变量值,使用current属性标识。
  • 当前迭代是奇数还是偶数,布尔值,使用event/odd属性标识。
  • 当前值是否第一个迭代值,布尔值,使用first属性标识。
  • 当前值是否最后一个迭代值,布尔值,使用last属性标识。

在这个例子中我们显式定义了一个跟踪变量iterState,如果没有显式定义,那么thymeleaf会自动生成一个,名称为迭代变量+State,例如这里是prodStat。

数据的懒加载

为了减轻数据库的压力,thymeleaf提供了数据懒加载的方式,前提是数据类型必须是ILazyContextVariable接口的实现,而我们通常是继承自LazyContextVariable抽象类。

本地变量

上面代码中迭代过程产生的product变量就是一个本地变量,该变量只能在<tr>及其子范围内被访问。类似的还有前几篇文章介绍的th:with、th:object属性,它们产生的变量也是一个本地变量。

转载请注明:Pure nonsense » thymeleaf数据循环

喜欢 (0)
0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
()
x