템플릿 엔진이란?
-데이터를 미리 정의된 템플릿에 바인딩해서 뷰의 표시를 도와주는 것
-바인딩 : 요소나 데이터, 파일 등을 서로 연결하는 것
타임리프란?
-HTML 기반의 템플릿 엔진으로, 정해진 문법으로 작성하면 페이지를 동적으로 조립해줌
-최종 출력을 생각하면서 뷰를 만들 수 있음
Model addAttribute(String name, Object value)
직접 문자를 삽입
- th:text="[출력 문자]"
인라인 처리
- [[${}]]로 본문에 변수를 포함할 수 있음
값 결합
- '+'를 이용
값 결합(리터럴 치환)
- | 문자 |
지역 변수
- th:with="변수 이름 = 값"로 변수에 값 할당
비교와 등가
- 비교 등가 연산자 사용
조건 연산자
- 삼항 연산자 사용 가능
조건 분기(true)
- th:if="[조건]"에서 참일 경우 작성 태그와 자식 요소를 표시
조건 분기(false)
- th:unless="[조건]"에서 거짓일 경우 작성 태그와 자식 요소를 표시
switch
- 부모 요소의 th:switch 값과 자식 요소의 th:case 값이 동일할 경우 HTML요소를 출력
참조(데이터를 결합한 객체)
- '객체명.필드', '객체명['필드']' 형식으로 값 참조
참조(th:object)
- th:object에 설정 후 자식 요소에서 '*{필드명}'으로 사용
참조(List)
- 인덱스 번호로 참조
참조(Map)
- 'map.key', map['키'] 형식으로 참조
반복
- th:each="[요소 저장용 변수]: ${[반복 처리하는 객체]}"
반복 상태
- th:each="[요소 저장용 변수],[상태 변수],[반복 처리할 객체]"
상태변수 | 기능 개요 |
---|---|
index | 0부터 시작하는 인덱스로 현재 인덱스를 표시 |
count | 1부터 시작하는 인덱스로 현재 인덱스를 표시 |
size | 반복 처리하는 객체의 사이즈를 표시 |
current | 현재 반복 요소의 객체 표시 |
even | 현재 요소가 짝수 번째인지 확인 |
odd | 현재 요소가 홀수 번째인지 확인 |
first | 현재 요소가 첫 번째 요소인지 확인 |
last | 현재 요소가 마지막인지 확인 |
유틸리티 객체
- 타임리프에서 자주 사용되는 클래스를 '#name'이라는 상수로 정의하고 있어 그대로 사용 가능
유틸리티 객체 | 기능 개요 |
---|---|
#strings | 문자 관련 편의 기능 |
#numbers | 숫자 서식 지원 |
#bools | Boolean 관련 기능 |
#dates | java.util.Date 서식 지원 |
#objects | 객체 관련 기능 |
#arrays | 배열 관련 기능 |
#lists | List 관련 기능 |
#sets | Set 관련 기능 |
#maps | Map 관련 기능 |
다른 템틀릿 삽입하기
- 프래그먼트화
레이아웃
- thymeleaf-layout-dialect 필요