Thymeleaf Basic
in Backend / Spring on Thymeleaf, Springboot, Spring
Thymeleaf
Thymeleaf + Springboot Quick Start
기본 사용 문법에 대한 정리
표준 표현식
- 간단한 표현
- 변수 표현식:
${...}
- 선택 변수 표현식:
*{...}
- 메시지 표현:
#{...}
- 링크 URL 표현식:
@{...}
- 조각 표현:
~{...}
- 변수 표현식:
- 리터럴
- 텍스트 리터럴:
'one text', 'Another one!',…
- 숫자 리터럴:
0, 34, 3.0, 12.3,…
- 부울 리터럴:
true,false
- 널 리터럴:
null
- 리터럴 토큰:
one, sometext, main,…
- 텍스트 리터럴:
- 텍스트 작업:
- 문자열 연결:
+
- 리터럴 대체:
|The name is ${name}|
- 문자열 연결:
- 산술 연산:
- 이항 연산자:
+, -, *, /,%
- 빼기 기호(단항 연산자):
-
- 이항 연산자:
- 부울 연산:
- 이진 연산자:
and,or
- 부울 부정(단항 연산자):
!,not
- 이진 연산자:
- 비교와 평등:
- 비교기:
>, <, >=, <=( gt, lt, ge, le)
- 같음 연산자:
==, !=( eq, ne)
- 비교기:
- 조건 연산자:
- if :
(if) ? (then)
- if-then-else:
(if) ? (then) : (else)
- 기본:
(value) ?: (defaultvalue)
- if :
메세지
정적 메세지에 동적으로 변하는 데이터와 같이 사용하기
정적인 메세지가 기본, 동적으로 변경하기
<p th:utext="#{home.welcome}">Welcome to our grocery store!</p> <!-- ⬇ 값 지정하기. --> home.welcome=¡Bienvenido a nuestra tienda de comestibles! <!-- ⬇ 실제 렌더링된 구문 --> <p>¡Bienvenido a nuestra tienda de comestibles, John Apricot!</p> <!-- ⬇ Expression Language 과 같이 사용할 수 있음. --> <p th:utext="#{home.welcome(${session.user.name})}"> Welcome to our grocery store, Sebastian Pepper! </p> <!-- 더 복잡하게도 사용 가능하다. --> <p th:utext="#{${welcomeMsgKey}(${session.user.name})}"> Welcome to our grocery store, Sebastian Pepper! </p>
th: 표현식
th:text
: 텍스트 값을 출력하는 표현식
<p th:text="${user.name}">Name</p>
th:utext
: HTML 인코딩되지 않은 텍스트를 출력하는 표현식
<p th:utext="${user.description}">Description</p>
th:if
: 조건을 검사하여 해당 요소를 표시할지 여부를 결정하는 표현식
<p th:if="${user.admin}">Admin</p>
th:unless
: th:if와 반대로 작동하며, 조건이 거짓일 때 해당 요소를 표시하는 표현식
<p th:unless="${user.admin}">Not an Admin</p>
th:switch
: 다중 분기 처리를 위한 표현식
<div th:switch="${user.role}">
<p th:case="'ADMIN'">Admin</p>
<p th:case="'USER'">User</p>
<p th:case="'GUEST'">Guest</p>
<p th:case="*">Unknown</p>
</div>
th:each
: 반복문을 처리하는 표현식
<ul>
<li th:each="product : ${products}" th:text="${product.name}"></li>
</ul>
th:with
: 변수를 생성하거나 값에 대한 별칭을 지정하는 표현식
<div th:with="discount=${product.price * 0.1}">
<p th:text="'Discount: ' + ${discount}"></p>
</div>
th:attr
: HTML 요소에 속성을 추가하는 표현식
<a th:attr="href=@{/products/{id}(id=${product.id})}, title=${product.name}">
<img th:src="@{/images/product.png}" />
</a>
th:href
: 링크 URL을 생성하는 표현식
<a th:href="@{/products/{id}(id=${product.id})}">Product Detail</a>
th:src
: 이미지나 스크립트 등의 소스 URL을 생성하는 표현식
<img th:src="@{/images/product.png}" />
더 많은 가이드는 공식 문서를 참고하세요!
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#introducing-thymeleaf