th:each
是 Thymeleaf 模板引擎中的一个迭代标签,用于在 HTML 页面中循环遍历集合或数组,并对每个元素执行相应的操作。Thymeleaf 是一个 Java 模板引擎,广泛应用于 Web 开发中,特别是在 Spring Boot 项目中。
th:each
标签允许你在 HTML 中嵌入循环逻辑,它可以遍历任何实现了 Iterable
接口的对象,如列表(List)、集合(Set)或数组。它的基本语法如下:
<div th:each="item, iterStat : ${collection}">
<!-- 使用 item 变量访问当前迭代的元素 -->
<!-- iterStat 是一个迭代状态对象,提供了额外的信息,如当前索引、是否为第一个或最后一个元素等 -->
</div>
th:each
提供了一种简洁的方式来遍历集合,避免了在控制器中编写复杂的逻辑。th:each
主要有两种使用方式:
iterStat
),该对象包含当前迭代的索引、是否为第一个或最后一个元素等信息。假设我们有一个包含用户信息的列表,我们想要在页面上显示每个用户的姓名和邮箱:
// 控制器中的代码
@GetMapping("/users")
public String listUsers(Model model) {
List<User> users = userService.getAllUsers();
model.addAttribute("users", users);
return "user-list";
}
<!-- user-list.html -->
<table>
<thead>
<tr>
<th>姓名</th>
<th>邮箱</th>
</tr>
</thead>
<tbody>
<tr th:each="user, iterStat : ${users}">
<td th:text="${user.name}"></td>
<td th:text="${user.email}"></td>
</tr>
</tbody>
</table>
问题:在使用 th:each
迭代时,页面显示为空,没有数据渲染出来。
原因:
th:each
中使用的变量名与控制器中添加到模型的属性名不匹配。解决方法:
th:each
中使用的变量名与模型中的属性名完全一致。通过以上步骤,通常可以定位并解决 th:each
使用中遇到的问题。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云