You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Thymeleaf的th:each循环中生成两行表格行?

在Thymeleaf循环内生成多行的解决方案

当然可以实现!Thymeleaf完全支持在循环逻辑里生成多个同级的表格行,你只需要借助它的无容器逻辑标签来承载循环属性就行,具体做法如下:

你之前用JSTL的写法是这样的:

<c:forEach items="${listOfObjects}" var="obj">
  <tr>
    <td>${obj.id}</td>
  </tr>
  <tr>
    <td>${obj.name}</td>
  </tr>
</c:forEach>

对应到Thymeleaf,我们可以用<th:block>标签来包裹这两行<tr>,把th:each属性放到<th:block>上——这个标签是Thymeleaf的专用逻辑容器,不会被渲染成实际的HTML元素,只会执行它身上的逻辑:

<th:block th:each="obj : ${listOfObjects}">
  <tr>
    <td th:text="${obj.id}"></td>
  </tr>
  <tr>
    <td th:text="${obj.name}"></td>
  </tr>
</th:block>

这样循环遍历listOfObjects里的每一个obj时,都会生成对应的两行表格,最终的HTML输出和你用JSTL实现的效果完全一致。

如果不想用<th:block>,理论上也可以用普通的HTML元素(比如<div>)来承载th:each,但这样会在表格里插入多余的<div>标签,破坏表格的结构,所以<th:block>是最适合的方案。

内容的提问来源于stack exchange,提问作者Scott Brank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 08:17:40