1) 타임리프란(Thymleaf) ?
- 타임리프(Thymeleaf)는 서버 사이드 Java 템플릿 엔진
- 서버 측에서 데이터를 표시하고 HTML 템플릿을 생성하는데 특화
- 주로 스프링 프레임워크와 사용
2) 특징
- th: xxx 가 붙은 부분은 서버 사이드에서 렌더링 되고 기존의 것을 대체하고 없으면 기존 html 속성 사용
- 스프링의 많은 기능과 함께 사용
- 반복, 조건, 국제화 등의 다양한 기능 지원
3) 타임리프 사용 선언
- <html xmlns:th="http://www.thymeleaf.org">
4) th:href 속성 변경
- HTML을 그대로 볼 때는 href 속성 사용
- 서버 사이드와 연동 될때는 th:href 의 값이 href 로 대체되어 데이터 바인딩
- th:href="@{/css/bootstrap.min.css}" : 타임리프는 URL 링크 사용시 @{...} 를 사용
5) th:onclick
- location.href='/basic/items/add' 를 타임리프에선 다음과 같이 표현
- th:onclick="|location.href='@{/basic/items/add}'|"
6) 리터럴 대체 문법
- 리터럴 대체 문법을 통해 다음과 같이 데이터를 바인딩
- <span th:text="|Welcome to our application, ${user.name}!|">
7) 반복 출력
<tr th:each="item : ${items}">
<td><a href="item.html" th:href="@{/basic/items/{itemId}(itemId=${item.id})}" th:text="${item.id}">회원id</a></td>
<td><a href="item.html" th:href="@{|/basic/items/${item.id}|}"th:text="${item.itemName}">상품명</a></td>
<td th:text="${item.price}">10000</td>
<td th:text="${item.quantity}">10</td>
</tr>
- 반복 출력 th:each 사용
- 컬렉션의 수 만큼 <tr>..</tr> 이 하위 태그 생성
- 변수 표현식 ${...} 을 통해 모델 또는 타임리프 변수 값을 조회
8) URL 링크 표현식
- http://localhost:8080/basic/items/1?query=test 다음과 같이 링크를 생성하고 싶다면 (이때 1은 itemId 값)
- th:href="@{/basic/items/{itemId}(itemId=${item.id}, query='test')}"
'백앤드 개발 > Java & Spring' 카테고리의 다른 글
[Spring boot] JPA 칼럼명과 언더바 (0) | 2023.12.12 |
---|---|
[Spring boot] 로그인, 로그아웃 구현 by 스프링 시큐리티 (0) | 2023.11.30 |
[Spring boot] 스프링 MVC 구조 이해 (0) | 2023.11.14 |
[Spring boot] 서블릿, JSP을 활용한 MVC 패턴 (0) | 2023.11.14 |
[Java] 참조형 변수 (0) | 2023.11.07 |