Spring

Thymeleaf - 표준 표현식

일태우 2021. 1. 27. 11:48

${...} : Variable expressions - OGNL 표현식, 스프링환경에서는 Spring EL

${shop.product.name}

<span th:text="${session.user.name}">

*{...} : Selection expressions - 변수 표현식과 동일하지만, 전체 컨텍스트 맵이 아닌 이전에 선택한 객체가 기준이됨

*{product.name}

<div th:object="${product}">
  ...
  <span th:text="*{name}">...</span>
  ...
</div>

#{...} : Message (i18n) expressions - .properties 같은 파일에서 값을 읽어 표현 할 수 있다. Spring 환경에서는 MessageSource과 통합됨 (docs.spring.io/spring-framework/docs/4.3.30.RELEASE/spring-framework-reference/htmlsingle/#context-functionality-messagesource)

#{homepage.title}

<div>
  ...
  <span th:text="#{homepage.title}">...</span>
  ...
  <span th:text="#{homepage.desc}">...</span>
  ...
</div>

@{...} : Link (URL) expressions

<a th:href="@{/order/list}">...</a>

 /myapp 컨텍스트에서 실행되고있는 어플리케이션은 실행되면 다음과 같이 변경된다.

<a href="/myapp/order/list">...</a>

 

프로토콜 생략 - 절대주소와 비슷하지만 브라우저와 동일한 http, https 프로토콜을 사용함

<a th:href="@{//static.mycompany.com/res/initial}">...</a>

// 제대로 표현
<a th:href="@{http://www.mycompany.com/main}">...</a>

~{...}: Fragment expressions - 마크업 템플릿을 표현하고, 쉽게 배치할때 사용할 수 있음

<!-- header.html -->
<div th:fragment="title">
	hello world
</div>

<!-- document.html -->
...
<!-- 템플릿 부분(fragment)참조 -->
<div th:insert="~{header :: title}"></div>
...

<!-- 템플릿 전체 참조 -->
<div th:insert="~{header}"><div>

 

 

참고

www.thymeleaf.org/doc/articles/standarddialect5minutes.html