상세 컨텐츠

본문 제목

thymeleaf 사용법

Spring/thymeleaf

by Chan.94 2021. 9. 15. 23:26

본문

반응형

thymeleaf는 뷰 템플릿이다. HTML 태그를 기반으로 동적인 뷰를 제공한다.

우선 타임 리프의 특징은 아래와 같습니다.

1. *.html 확장자를 사용한다.

2. 별도의 레이아웃 프레임워크의 도움 없이 레이아웃을 관리할 수 있다.

thymeleaf layout에 대해 알고싶다면 이전 포스팅을 확인바란다.

[Spring Boot/thymeleaf] - thymeleaf layout 구성

 

thymeleaf layout 구성

thymeleaf는 뷰 템플릿이다. HTML 태그를 기반으로 동적인 뷰를 제공한다. 우선 타임 리프의 특징은 아래와 같습니다. *.html 확장자를 사용한다. 별도의 레이아웃 프레임워크의 도움 없이 레이

fvor001.tistory.com

 

3. HTML 문법으로 JAVA 데이터를 처리할 수 있다.

오늘은 3번에 대해 정리하겠다.

 


자주 사용하는 문법

표현식 : th:[속성]="서버에서 전달받은 값 OR 조건식"

 

Thymeleaf 3.x 에서는 html 태그 없이 표현이 가능하다.

[[$user.USER_ID]]

 

Title Desc
th:text 텍스트내용
th:utext HTML Tag가 있다면 Tag를 반영한 텍스트내용
th:each 반복문
th:if 조건문

 

객체 Desc
#calendars java.util.Calendar 서식 지원
#arrays 배열 관련 기능 제공

Controller

@GetMapping("/thymeleaf")
public String thymeleafTest(Model model) {
	model.addAttribute("message1", "Hello World");
 	model.addAttribute("message2", "<p>Hello World!</p>");

	List<User> userList = new ArrayList<>();
	for(int nIdx=0;nIdx<3;nIdx++) {
		userList.add(new User(nIdx, "이름" + nIdx, "M") );
	}
	User user = new User(9999, "홍길동", "W") ;
	model.addAttribute("user", user);
	model.addAttribute("userList", userList);
	model.addAttribute("today", new Date());

	return "thymeleaf";
}

HTML

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
	layout:decorator="layout/default">

<th:block layout:fragment="content">
	<div id="page-wrapper">
		
		<h1>th:text 예제</h1>
		<h2 th:text="${message1}">Thymeleaf Sample</h2>
		<h2 th:text="${message2}">Thymeleaf Sample</h2>
		<br>
		<h1>th:utext(Html) 예제</h1>
		<h2 th:utext="${message2}">Thymeleaf Sample</h2>
		
		<h1>each 예제</h1>
		<table>
			<tr th:each="user : ${userList}">
				<td th:text="${user.USER_ID}"></td>
			</tr>
		</table>
		
		<h1>객체 예제</h1>
		<p th:text="${user.USER_ID}">default</p>
		<p>[[${user.USER_ID}]]</p>
		
		<h1>삼항연산자 예제</h1>
		<p th:text="${user.USER_SEX == 'M' ? '남자' : '여자' }">삼항연산자</p>
		
		<h1>with 예제</h1>
		<p th:with="id = ${user.USER_ID}" th:text="${id}"></p>
		 
		<h1>if 예제</h1>
		<p th:if="${user.USER_NO}== 9999" th:text="${user.USER_ID}"></p>
		
		<p><br>Today : <span th:text="${#calendars.format(today,'yyyy-MM-dd')}">2021-09-15</span></p>
		<p><br>user count : <span th:text="${#arrays.length(userList)}"></span></p>
	</div>
</th:block>
</html>

결과

th:text 예제
Hello World
<p>Hello World!</p>

th:utext(Html) 예제
Hello World!

each 예제
이름0
이름1
이름2

객체 예제
홍길동
홍길동

삼항연산자 예제
여자

with 예제
홍길동

if 예제
홍길동

Today is: 2021-09-15

user count : 3

application.yml값 가지고오기

 

application.yml

spring:
	main:
    		title:DEV LOG

HTML

<h1 th:text = "${@environment.getProperty('spring.main.title')}">TITLE</h1>

결과

DEV LOG

 

반응형

'Spring > thymeleaf' 카테고리의 다른 글

thymeleaf layout 구성  (0) 2021.09.14

관련글 더보기

댓글 영역

>