spring boot

타임리프 정리-2

moongi 2023. 10. 27. 12:50
반응형

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&param2=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