Thymeleaf(타임리프)는 템플릿 엔진입니다.
그렇다면, 템플릿 엔진이란 무엇일까요?
템플릿 엔진은 스프링 서버에서 데이터를 받아 우리가 보는 웹 페이지, 즉, HTML 상에 그 데이터를 넣어 보여주는 도구입니다. 다만 템플릿 엔진은 HTML과 함께 템플릿 엔진을 위한 문법을 살짝 섞어 사용해야 합니다.
그럼 간단한 예를 들어 보겠습니다.
우선 아주 간단한 템플릿 문법을 살펴보겠습니다.
<h1 text=${이름}>
<p text=${나이}>
코드를 보면, HTML과 뭔가 섞인 듯한 느낌이 듭니다.
h1태그에는 ${이름}이 text 어트리뷰트로 할당되어 있습니다.
p태그도 마찬가지 입니다.
이것이 바로 템플릿 문법입니다.
이렇게 템플릿을 만들면, 서버에서 이름, 나이라는 키로 데이터를 템플릿 엔진에 넘겨주고, 템플릿 엔진은 이를 받아 HTMl에 값을 적용합니다.
{
이름: "홍길동"
나이: 11
}
해당 키 값이 달라지면 바로바로 화면에 반영되니 동적인 웹 페이지를 만들 수 있게 되는 것이죠!
다음은 Thymeleaf의 표현식입니다.
| 표현식 | 문법 |
|---|---|
| ${...} | 변수의 값 표현식 |
| #{...} | 속성 파일 값 표현식 |
| @{...} | URL 표현식 |
| *{...} | 선택한 변수의 표현식. th:object에서 선택한 객체에 접근 |
다음은 Thymeleaf의 문법입니다.
| 표현식 | 설명 | 예제 |
|---|---|---|
| th:text | 텍스트를 표현할 때 사용 | th:text=${person.name} |
| th:each | 컬렉션을 반복할 때 사용 | th:each="person:${persons}" |
| th:if | 조건이 true인 때만 표시 | th:if=${person.age}>=20" |
마지막으로, build.gradle 파일에 해당 의존성을 추가하여 Thymeleaf를 사용할 수 있습니다.
dependencies {
implementataion 'org.spirngframework.boot:spring=boot-starter-thymeleaf'
}
📚Reference
연로그 - 타임리프란?