Thymeleaf는 Java 기반의 서버 사이드 템플릿 엔진으로, HTML을 동적으로 생성하는 데 사용됩니다. Thymeleaf에서 반복문을 구현하는 가장 일반적인 방법은 th:each
속성을 사용하는 것입니다. 그러나 사용자가 원하는 것처럼 태그를 복사하지 않고 블록을 반복할 수 있는 방법도 있습니다.
th:block
사용하기th:block
은 Thymeleaf에서 제공하는 특수한 태그로, 속성을 포함할 수 있는 컨테이너 역할을 합니다. 이 태그는 렌더링 시 사라지므로, 반복적으로 사용할 블록을 정의하는 데 유용합니다. 예를 들어, 사용자 목록을 테이블 형식으로 출력할 때 다음과 같이 사용할 수 있습니다:
<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>
위의 예제에서 th:block
은 users
리스트의 각 user
객체에 대해 반복적으로 <tr>
태그를 생성합니다.
th:remove
사용하기또 다른 방법은 th:remove
속성을 사용하는 것입니다. 이 속성은 특정 태그를 조건부로 제거할 수 있게 해줍니다. 예를 들어, 다음과 같이 사용할 수 있습니다:
<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>
이 경우, <tbody>
태그는 반복문이 실행된 후 제거되며, 결과적으로 <tr>
태그만 남게 됩니다.
Thymeleaf에서 반복문을 구현할 때 th:block
과 th:remove
를 활용하면, 원하는 형태로 HTML을 구성할 수 있습니다. 이러한 방법들은 복잡한 HTML 구조를 생성할 때 유용하게 사용될 수 있습니다.
더 자세한 내용은 Stack Overflow의 관련 질문에서 확인할 수 있습니다.