I can not find syntax for building simple for-each-loop in Thymeleaf
template.
I\'m not satisfied with just th:each=\"\"
attribute, because it copi
The th:block
solution is definitely the best one, but alternatively you can also try using th:remove="tag"
in order to remove the containing tag:
<table>
<tbody th:each="user : ${users}" th:remove="tag">
<tr>
<td th:text="${user.login}">...</td>
<td th:text="${user.name}">...</td>
</tr>
<tr>
<td colspan="2" th:text="${user.address}">...</td>
</tr>
</tbody>
</table>
The benefit of this approach is that you can also pass a Thymeleaf expression to th:remove
in order to only remove the tag conditionally, e.g. if you want only some users to be included in a <tbody>
, besides having other interesting uses.
Here is the documentation for th:remove
.
Use th:block
as stated in the Thymeleaf guide
th:block
is a mere attribute container that allows template developers to specify whichever attributes they want. Thymeleaf will execute these attributes and then simply make the block disappear without a trace.
So it could be useful, for example, when creating iterated tables that require more than one <tr>
for each element:
<table>
<th:block th:each="user : ${users}">
<tr>
<td th:text="${user.login}">...</td>
<td th:text="${user.name}">...</td>
</tr>
<tr>
<td colspan="2" th:text="${user.address}">...</td>
</tr>
</th:block>
</table>