Thymeleaf中的迭代

Thymleaf中用th:each属性实现迭代操作。

 
        Onions
        2.41
        yes
 

将会以prods中的每个元素prod,迭代多次。

  • ${prods}称为被迭代的表达式,被迭代的变量(Iterated expression, Iterrated variable)
  • prod称为迭代变量,其作用域为声明其的标签(Interation variable, iter variable)

被迭代的变量允许的类型为:

  • 实现了java.util.Iterable的对象
  • 实现了java.util.Map的对象,此时inter variable为java.util.Map.Entry
  • 数组
  • 其他任何对象会被当做只有该对象本身一个元素的单值列表被迭代

Theamleaf因为其作为模板引擎的使用场景,仅提供了foreach风格的迭代,未直接提供C中经典的for风格循环方式,不过可以通过foreach一个顺序数列来达到同样的效果。

迭代状态

迭代的状态通过状态变量(status variable)反映。声明状态变量的语法为:迭代变量后,紧跟逗号分隔符,然后声明状态命令的名称。


    Onions
    2.41
    yes

状态变量有和迭代变量一样的作用域。

一个状态变量包含数据:

  • index属性,从0开始,当前的迭代索引
  • count属性,从1开始,当前的迭代索引
  • size属性,被迭代变量(Iterated variable)中的元素总数
  • current属性,当前的迭代(Iteration variable)变量
  • even/odd 布尔属性,当前的迭代是奇数还是偶数
  • first/last 布尔属性,当前是否是开始的或最后的迭代

隐式的状态变量

如果没有显式的声明状态变量,一个隐式的状态变量被自动声明,其名称为迭代变量(Iter variable)加上“Stat”的后缀。

  
    Onions
    2.41
    yes
  

你可能感兴趣的:(Thymeleaf,Web技术,Java)