Thymeleaf는 서버 사이트 Java 템플릿 엔진으로,
웹 및 독립형 환경에서 사용할 수 있는 자바 템플릿 엔진이다.
주로, Spring Framework와 통합하여 사용되며,
HTML, XML, JavaScript, CSS 등과 같은
마크업을 템플릿으로 사용할 수 있다.
타임리프 공식 사이트
보통 자바에서 웹 개발시 JSP(Java Server Page)를 이용하여 진행한다.
JSP를 사용하면 <% %>형태의 스크립트릿을 사용하여 개발한다.
그러나 이 방식은 스크립트릿과 HTML이 혼재된 상태가 되고
HTML 태그의 반복적인 사용으로 인해 수정하기 어려운 상황이 된다.
이러한 상태를 해결할 수 있는 것이 템플릿 엔진이다.
####템플릿 엔진이란 HTML(Markup)과 데이터를 결합한 결과물을 만들어 주는 도구이다.
타임리프는 템플릿 엔진 중 하나로, Spring Boot에서는 JSP가 아닌 Thymeleaf 사용을 권장하고 있다.
https://myeongdev.tistory.com/20
Thymeleaf의 주요 특징은 다음과 같다.
자연스러운 템플릿 | 웹 개발자가 HTML 템플릿에 자연스럽게 통합되도록 설계되었다. 일반적인 HTML 파일을 만들 때도 Thymeleaf 태그를 사용하지 않아도 되며, 이로써 다른 도구로도 원래의 HTML 파일을 볼 수 있다. |
프레임워크에 대한 독립성 | 독립적으로 사용할 수 있으며, 다양한 웹 프레임워크와 통합될 수 있다. 특히 Spring Framework와의 통합이 강력하게 지원되어 Spring 기반의 웹 애플리케이션에서 주로 사용된다. |
서버 사이드 렌더링 | 서버 사이드 렌더링을 지원하므로 서버에서 동적으로 HTML을 생성할 수 있다. |
자연스러운 표현식 | 자연스러운 표현식 언어를 제공하여 데이터와 템플릿 간의 상호작용을 지원한다. |
프로세서 확장 | 사용자 정의 프로세서를 확장하여 특정 요구사항에 맞게 템플릿을 처리할 수 있도록 허용한다. |
https://yeonyeon.tistory.com/153
1) 텍스트 출력
-> th:text 속성 사용하여 데이터 출력
<!-- 예제 1: 텍스트 출력 -->
<p th:text="${message}">Default Message</p>
2) 조건문과 반복문
-> th:if, th:unless, th:switch, th:case, th:each 등 속성 사용
<!-- 예제 2: 조건문과 반복문 -->
<div th:if="${isAdmin}">
<p>Welcome, Admin!</p>
</div>
<ul>
<li th:each="item : ${items}" th:text="${item}">Item</li>
</ul>
3. 속성 설정
-> th:attr 사용하여 HTML 속성 동적으로 설정 가능
<!-- 예제 3: 속성 설정 -->
<a th:href="@{/home}" th:attr="title=${linkTitle}">Go Home</a>
4. URL과 링크
-> th:href, th:src 사용하여 URL 동적 생성
<!-- 예제 4: URL과 링크 -->
<a th:href="@{/users/{userId}(userId=${user.id})}">View User</a>
5. 메시지 국제화
-> th:text, th:utext 사용
<!-- 예제 5: 메시지 국제화 -->
<p th:text="#{welcome.message}">Welcome</p>
'Spring Boot' 카테고리의 다른 글
[스프링 입문] (4) 스프링 빈과 의존관계 (0) | 2024.01.10 |
---|---|
[스프링 입문] (2) 스프링 웹 개발 기초 (0) | 2024.01.02 |
[스프링 입문] (1) 프로젝트 환경설정 (0) | 2023.12.31 |
Spring Boot 라이브러리 (0) | 2023.08.11 |
Gradle과 Maven 차이? (0) | 2023.08.11 |