반응형
타임리프(Timeleaf)는 서버 사이드 java 템플릿 엔진으로, 웹 애플리케이션 개발에서 동적인 HTML, XML, JSON 등의 문서를생성하는데 사용된다.
타임리프의 특징
- 자바와 자연스러운 통합 : 자바 코드와 웹 템플릿을 쉽게 통합할 수 있다.
- 심플하고 직관적인 문법 : 간결하고 읽기 쉬운 템플릿 문법을 제공한다.
- 다양한 템플릿 기능 : 조건문, 반복문, 변수 선언, 템플릿 상속 등 다양한 기능을 제공한다.
- 템플릿 캐싱 : 템플릿의 변동 없이 재사용 가능한 캐시를 생성하여 성능을 향상시킨다.
타임리프의 문법
- 변수 표현식 : ' ${변수명} ' 형태로 변수를 템플릿에 표현할 수 있다.
- OGNL(객체 그래프 탐색 언어) 표현식 : ' *{표현식} ' 형태로 객체의 속성에 접근하고 출력할 수 있다.
- 조건문 : ' th:if ', ' th:unless '를 사용하여 조건에 따라 템플릿 블록을 표시하거나 숨길 수 있다.
- 반복문 : ' th:each '를 사용하여 컬렉션의 요소를 반복하고 템플릿 블록을 생성할 수 있다.
- 속성 설정 : ' th:attr '을 사용하여 HTML 요소의 속성을 동적으로 설정할 수 있다.
- 템플릿 상속 : ' th:insert ', ' th:replace ', ' th:include '를 사용하여 템플릿 간에 상속 관계를 설정할 수 있다.
<!-- 변수 표현식 -->
<p>Welcome, ${username}!</p>
<!-- OGNL 표현식 -->
<p>User email: <span th:text="*{user.email}"></span></p>
<!-- 조건문 -->
<div th:if="${isAdmin}">
<p>You have admin privileges.</p>
</div>
<div th:unless="${isAdmin}">
<p>You do not have admin privileges.</p>
</div>
<!-- 반복문 -->
<ul>
<li th:each="item : ${items}" th:text="${item}"></li>
</ul>
<!-- 속성 설정 -->
<a href="#" th:attr="href=@{/logout}">Logout</a>
<tr>
<td th:text="${studentVO.name}"></td>
<td th:text="${studentVO.korean}"></td>
<td th:text="${studentVO.english}"></td>
<td th:text="${studentVO.math}"></td>
</tr>
<tr th:object="${studentVO}">
<td th:text="*{name}"></td>
<td th:text="*{korean}"></td>
<td th:text="*{english}"></td>
<td th:text="*{math}"></td>
</tr>
연산도 가능하다.
<tr th:object="${studentVO}">
<td th:text="*{name}"></td>
<td th:text="*{korean}"></td>
<td th:text="*{english}"></td>
<td th:text="*{math}"></td>
<td th:text="*{korean + english + math} + '점'"></td>
<td th:text="|*{(korean + english + math) / 3}점|"></td>
</tr>
반응형
'Spring Boot' 카테고리의 다른 글
JPA 단 방향(연관 관계) (0) | 2023.06.27 |
---|---|
Get, Post, Redirect (0) | 2023.05.02 |
MVC 2 (0) | 2023.05.01 |
Spring 의존성 주입 (0) | 2023.04.30 |
JAVA Spring 프레임워크 란? (0) | 2023.04.29 |