[java] Thymeleaf의 문법은 어떻게 구성되어 있나요?

Thymeleaf는 Java에서 웹 애플리케이션의 템플릿 엔진으로 사용되는 기술입니다. Thymeleaf는 HTML 템플릿 내에 표현식을 삽입하여 동적으로 데이터를 표시할 수 있습니다.

Thymeleaf의 문법은 다음과 같은 구성 요소로 이루어져 있습니다.

  1. 태그 수정자 (Tag Modifiers)
    • 태그 수정자는 HTML 요소에 적용되는 Thymeleaf 표현식입니다. 주로 th: 접두사를 사용하며, 해당 요소의 동작을 변경하거나 값을 설정할 수 있습니다.

    예시:

    • <div th:text="${title}">Hello</div> : title 변수의 값을 div 요소의 텍스트로 표시합니다.
    • <input type="text" th:value="${username}"> : username 변수의 값을 input 요소의 기본값으로 설정합니다.
  2. 속성 수정자 (Attribute Modifiers)
    • 속성 수정자는 HTML 요소의 속성에 적용되는 Thymeleaf 표현식입니다. 주로 th: 접두사를 사용하며, 해당 속성의 값을 동적으로 설정할 수 있습니다.

    예시:

    • <a href="#" th:href="@{/users/{id}(id=${userId})}">User Profile</a> : userId 변수의 값을 템플릿 링크의 경로 매개변수로 설정합니다.
  3. 조건문 (Conditional Statements)
    • Thymeleaf는 th:if, th:unless, th:switch, th:case 등의 속성을 제공하여 조건문을 작성할 수 있습니다. 이를 통해 템플릿의 일부를 동적으로 표시하거나 숨길 수 있습니다.

    예시:

    • <div th:if="${user.isAdmin()}">Admin section</div> : user.isAdmin()의 결과에 따라 div 요소를 표시합니다.
  4. 반복문 (Iteration)
    • Thymeleaf는 th:each 속성을 사용하여 컬렉션 요소를 반복하여 템플릿을 생성할 수 있습니다.

    예시:

    <ul>
      <li th:each="user : ${users}" th:text="${user.name}"></li>
    </ul>
    
    • users 컬렉션의 각 요소에 대해 li 요소를 생성하고, user.name 값을 텍스트로 표시합니다.

Thymeleaf의 문법은 위와 같은 구성 요소로 이루어져 있으며, 이를 활용하여 동적인 웹 페이지를 생성할 수 있습니다. Thymeleaf 공식 문서나 튜토리얼을 참조하시면 더 자세한 내용을 확인하실 수 있습니다.