spring - style - Para cada operador en Thymeleaf
thymeleaf javascript (2)
No puedo encontrar la sintaxis para crear un bucle simple para cada uno en la plantilla Thymeleaf
. No estoy satisfecho con el atributo th:each=""
, ya que copia la etiqueta en la que se encuentra.
Lo que busco es algo como:
<th:foreach th:each="...">
...block to be repeated...
</th>
lo que es analógico de <c:forEach items="..." var="...">
o <t:loop source="..." value="...">
en Tapestry
. ¿Hay algo similar para eso?
La solución th:block
es definitivamente la mejor, pero alternativamente, también puedes intentar usar th:remove="tag"
para eliminar la etiqueta contenedora:
<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>
El beneficio de este enfoque es que también puede pasar una expresión Thymeleaf a th:remove
para eliminar solo la etiqueta condicionalmente, por ejemplo, si desea que solo algunos usuarios se incluyan en un <tbody>
, además de tener otros usos interesantes.
Here está la documentación para th:remove
.
Use th:block
como se indica en la guía de Thymeleaf
th:block
es un mero contenedor de atributos que permite a los desarrolladores de plantillas especificar los atributos que desean. Thymeleaf ejecutará estos atributos y luego simplemente hará que el bloque desaparezca sin dejar rastro.
Por lo tanto, podría ser útil, por ejemplo, al crear tablas iteradas que requieren más de una <tr>
para cada elemento:
<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>