style spring spring-mvc for-loop foreach thymeleaf

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>