반응형
1. 유틸리티
타임리프에서 자바8 날짜인 LocalDate, LocalDateTime, Instant를 사용하려면 추가 라이브러리 필요 -> 스프링 부트 타임리프를 사용하면 자동으로 추가(걱정 X)
사용예시
// basic/date.html
<span th:text="${#temporals.format(localDate, 'yyyy-MM-dd HH:mm:ss')}"></span>
// BasicController 추가
@GetMapping("/date")
public String date(Model model) {
model.addAttribute("localDateTime", LocalDateTime.now());
return "basic/date";
}
2. URL 링크
// BasicController 추가
@GetMapping("/link")
public String link(Model model) {
model.addAttribute("param1", "data1");
model.addAttribute("param2", "data2");
return "basic/link";
}
// basic/link.html
<ul>
<li><a th:href="@{/hello}">basic url</a></li> // 1
<li><a th:href="@{/hello(param1=${param1}, param2=${param2})}">hello query param</a></li> // 2
<li><a th:href="@{/hello/{param1}/{param2}(param1=${param1}, param2=${param2})}">path variable</a></li> // 3
<li><a th:href="@{/hello/{param1}(param1=${param1}, param2=${param2})}">path variable + query parameter</a></li> // 4
</ul>
1. 단순한 URL: /hello
2. 쿼리 파라미터: /hello?param1=data1¶m2=data2
3. 경로 변수: /hello/data1/data2
4. 경로 변수 + 쿼리 파라미터: /hello/data1?param2=data2
3. 리터럴(Literals)
// 타임리프에서 문자 리터럴은 항상 '로 감싸야 한다.
<span th:text="'hello'">
// 하지만 너무 귀찮고~ => 공백 없이 쭉 이어진다면 하나의 의미있는 토큰으로 인지 -> 생략 가능
<span th:text="hello"> (o)
<span th:text="hello world"> (x)
<span th:text="'hello world'"> (o)
<span th:text="'hello' + ' world!'"> (o)
<span th:text="'hello ' + ${data}"> (o)
<span th:text="|hello ${data}|"> (o) // -> 리터럴 대체 문법 : 마치 템플릿을 사용하는 것처럼 편하쥬
// 추가 예정 //
4. 연산
5. 속성 값 설정
6. 반복
7. 조건부 평가
8. 주석
9. 블록
10. 자바스크립트 인라인
11. 템플릿 조각
12. 템플릿 레이아웃
반응형
'spring boot' 카테고리의 다른 글
스프링 포맷터(Formatter) (0) | 2023.11.23 |
---|---|
스프링 타입 컨버터 - Converter (1) | 2023.11.23 |
타임리프(Thymeleaf) 정리 (2) | 2023.10.19 |