728x90
Thymeleaf
화면을 동적으로 만들 수 있는 템플릿 엔진
미리 정의된 템플릿(Template)을 만들고 동적으로 HTML 페이지를 만들어서 클라이언트에 전달하는 방식
요청이 올 때마다 서버에서 새로운 HTML을 만들어 주기 때문에
SSL 서버 사이드 렌더링이라 한다.
1. 특징
- 'natural templates' 확장자명 .html
- Thymeleaf문법은 html 태그 안쪽 속성으로 사용된다.
2. thymeleaf_basic
- ItemDto 연습용 Controller 생성 hello.example.controller.ThymeleafExController
- hello.example.dto.ItemDto 클래스 생성
- 데이터를 주고받을 때는 Entity 클래스 자체를 반환X 데이터 전달용 객체(Data Transfer Object)
를 생성해서 사용 - Entity는 절대로 외부에 노출하면 안된다. Entity는 스펙이기 때문에 변경이 있으면 안된다.
2.1 th:text
- <html xmlns:th="http://www.thymeleaf.org"> 타임리프를 사용하기 위한 설정
- 문자를 표현하기 위한 thymeleaf 문법
- $ = 변수 표현 e.g., ${클래스.변수명}
2.2 th:each
- 자바의 for문처럼 반복문을 사용할 수 있다.
- 전달받은 itemDtoList에 있는 데이터를 하나씩 꺼내서 itemDto에 담아준다.
- status에는 현재 반복에 대한 상태 데이터가 존재 다른 변수명을 사용해도 된다.
728x90