반응형
1️⃣ 타임리프(Thymeleaf)
타임리프는 스프링 부트에서 공식적으로 지원하는 View 템플릿 엔진이다. 컨트롤러가 전달하는 데이터를 이용해 동적으로 화면을 구성해 준다.
🔹 타임리프 대표적인 특징
- JSP와 달리 Thtmeleaf 문서는 HTML 확장자를 가지고 있어 서버상에서 동작하지 않아도 파일의 내용을 확인할 수 있다.
- 순수 HTML 구조를 유지한다. 따라서 Natural Template이라고도 불린다.
- 화면 구성을 서버 가동 없이 쉽게 파악할 수 있기 때문에 개발에 용이하다.
2️⃣ 타임리프 사용
🔹 라이브러리 추가
타임리프 사용을 위해 build.gradle에 의존성을 추가해야 한다.
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
🔹 타임리프 문법
html 문서 생성
- 타임리프는 다음과 같은 기본 뷰 템플릿 경로를 가지고 있다. 타임리프를 사용할 html 문서는 아래의 경로의 하위에 생성해야 한다.
spring.thymeleaf.prefix=classpath:/templates/
html 태그 추가
- 타임리프를 사용하기 위해선 html 태그에 다음 코드를 추가해야 한다.
<html xmlns:th="http://www.thymeleaf.org">
변수 표현식 - ${변수명}
- ${변수명}: 모델에 포함된 값이나 타임리프 변수로 선언한 값을 조회
<td th:text="${post.id}"></td>
위와 같이 사용하면 post에 저장된 id에 접근하여 id 값을 텍스트로 출력할 수 있다.
URL 링크 표현식 - @{…}
@{링크}: URL 링크를 사용하는 경우 @{링크}와 같은 형태로 작성한다.
<a th:href="@{/posts/update/{id}(id=${post.id})}"></a>
<a th:href="@{|/posts/update/${post.id}|}"></a> <!-- 리터럴 대체 문법 사용 -->
리터럴 대체 - |…|
- 타임리프는 공백을 인지하지 못한다. 따라서 문자열은 항상 작은따옴표(’)로 감싸야한다.
- 편의를 위해 리터럴 대체 문법을 사용할 수 있다.
<li>'hello' + ' world!' = <span th:text="'hello' + 'world!'"></span></li>
<li>'hello world!' <span th:text="'hello world!'"></span></li>
<li>'hello ' + ${data} = <span th:text="'hello ' + ${data}"></span></li>
<li> 리터럴 대체 = <span th:text="|hello ${data}|"></span></li>
반응형
'Java > Spring' 카테고리의 다른 글
[JPA] 쿼리 파라미터 로그 남기는 법 (1) | 2023.06.01 |
---|---|
[Spring] 서블릿(servlet)에 대해 알아보자 (0) | 2023.04.05 |
[Spring] JPA에 대해 알아보자! (0) | 2023.03.31 |
[Spring] 비즈니스 로직을 처리하는 패턴 (0) | 2023.03.31 |
[Spring] Model 객체와 @ModelAttribute 어노테이션 (0) | 2023.03.25 |