Thymeleaf_循环

在Thymeleaf中,循环语法主要依赖于th:each属性。以下是一些关于Thymeleaf循环语法的详细解释:

1. 基本循环语法

<tr th:each="item : ${items}"> <td th:text="${item.id}"></td> <td th:text="${item.name}"></td> <td th:text="${item.price}"></td> </tr>

在这个例子中,th:each="item : ${items}"表示对名为items的集合进行迭代,每次迭代中,当前元素被赋值给变量item。然后,你可以使用${item.property_name}来访问当前元素的属性。

2. 状态变量

Thymeleaf的循环还提供了一个内置的状态变量,可以用来跟踪当前迭代的状态:

  • ${itemStat.index}:当前项目的索引(从0开始)。
  • ${itemStat.count}:当前项目的索引(从1开始)。
  • ${itemStat.size}:项目集的总大小。
  • ${itemStat.first}:布尔值,如果当前项目是第一个项目则为true。
  • ${itemStat.last}:布尔值,如果当前项目是最后一个项目则为true。

例如:

<tr th:each="item, itemStat : ${items}"> <td th:text="${itemStat.count}"></td> <td th:text="${item.name}"></td> <td th:text="${item.price}"></td> </tr>

3. 迭代数组和映射

对于数组和映射,循环语法与迭代集合类似:

数组:

<ul> <li th:each="element, index : ${array}"> <span th:text="${index}"></span>: <span th:text="${element}"></span> </li> </ul>

映射:

<ul> <li th:each="entry : ${map}"> <span th:text="${entry.key}"></span>: <span th:text="${entry.value}"></span> </li> </ul>

4. 条件循环

你可以在循环中使用th:if来添加条件逻辑:

<tr th:each="item : ${items}" th:if="${item.price > 10}"> <td th:text="${item.name}"></td> <td th:text="${item.price}"></td> </tr>

这个例子只会渲染价格大于10的项。

5. 嵌套循环

你可以在一个循环内部嵌套另一个循环:

<tbody th:each="category : ${categories}"> <tr> <td th:text="${category.name}"></td> </tr> <tr th:each="item : ${category.items}"> <td th:text="${item.name}"></td> <td th:text="${item.price}"></td> </tr> </tbody>

这个例子首先遍历categories,然后在每个类别下遍历其items

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值