Thymeleaf
표현식
- 변수 표현식 : ${…}
- 선택 표현식 : *{…} (th:object에 들어있는 값을 가져올 때 사용)
- 메시지 표현식 : #{…}
-
링크 URL 표현식 : @{…} ( 안에서는 ${…}을 사용 가능하다)
기본값 지정
표현식에 ?:를 붙이면 기본값을 지정할 수 있다. 이는 표현식 ? 입력값 : 기본값과 같다.
인라인
[[표현식]]으로 태그 외부에서 타임리프의 표현식을 사용할 수 있다. script태그에 th:inline=”javascript”속성을 지정하면 자바스크립트에서도 사용할 수 있다.
표현식 기본 객체
- #ctx : context object
- #vars : context variables
- #locale : context locale
- #httpServletRequest : HttpServletRequest
- #httpSession : HttpSession
표현식 유틸리티 객체
- #dates : java.util.Date
- #calendars : java.util.Calendar
- #numbers : 숫자 포맷팅
- #strings : String에 대한 기능, contains, startsWith 등
- #objects : 일반적인 객체들에 대한 기능
- #bools : boolean 평가에 대한 기능
- #arrays : 배열
- #lists : 리스트
- #sets : 셋
- #maps : 맵
- #aggregates : 배열이나 리스트의 집계
- #messages : 변수 표현식에서 외부 메시지를 얻는 기능
- #ids : 반복되는 id속성을 다루는 기능, 예를 들면 결과 순회
속성
th:[HTML 속성]으로 HTML 속성에 타임리프 문법으로 값을 넣을 수 있다.
반복
th:each=”item, status : ${array}”로 태그를 반복할 수 있다. item자리에 개체, status자리에 반복 상태값들이 들어있다.
조건
th:if로 조건식에 따라 태그를 활성화/비활성화 할 수 있고, th:switch를 통해 하위 태그의 th:case에 맞는 태그만 활성화 할 수 있다.
템플릿
태그에 th:fragment로 템플릿의 이름을 지정하고 th:include나 th:replace로 해당 위치에 템플릿을 삽입할 수 있다. 삽입할때에는 파일명::템플릿이름 형식으로 지정해야한다. include는 태그 내부 내용만 포함시키고, replace는 태그 그 자체를 대체한다.
지역변수
th:with=”변수명=값”으로 지역변수를 만들 수 있다.
주석
<!—/* 타임리프 파싱 할 때 제거됨 */—>
th:block
실제로 렌더링되지 않지만, 그룹화를 위해 존재하는 논리적인 태그
튜토리얼 링크 : Tutorial: Using Thymeleaf