-
[spring Boot] Thymeleaf 페이지 레이아웃Spring/Spring Boot 2024. 8. 6. 12:34
▤ 목차
✔ Thymeleaf Layout Dialect dependency 추가 ***
⌨ build.gradle > dependencies 설정
implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect'
반드시 넣어줘야한다. dependency를 추가하고 나면 프로젝트를 refresh 해줘야한다.
👻 Refresh Gradle Project
해당 파일 우클릭 > gradle > Refresh Gradle Project 을 눌러 프로젝트를 리플레쉬해준다.
✔컨트롤러 작성
✨ 형식
@Controller @RequestMapping(value="thleaf") public class TestController { @GetMapping("/ex5") public String method5() { return "show5"; } }
👏 중요
spring 에서 해당 컨트롤러를 빈으로 등록하고 Controller(component)로 인지하고 viewResorve가 해당 파일명.html을 resources/templates에서 찾는다.
즉, resources/templates 하위에 show5.html 파일을 만들어준다.!
✔ header, footer 만들기
🔹header
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <div th:fragment="header"> 머리글!!! </div> </html>
🔹footer
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <div th:fragment="footer"> footer영역! </div> </html>
✔ layout 파일 만들기
🔸 이미지
이런 식으로 들어가는 것이다.
💻 코드로 보기
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> <head> <meta charset="UTF-8"> <title>😉🧐😉</title> <link rel="stylesheet" th:href="@{/css/style.css}"/> </head> <body> <!-- th:block 마땅한 태그가 없는 경우 사용할 수 있다. --> <th:block th:replace="fragments/header::header"></th:block> <div layout:fragment="content" class="content"></div> <th:block th:replace="fragments/footer::footer"></th:block> </body> </html>
✔ view 파일
🔷 layout : decorate
🔹 코드로 보기
<!DOCTYPE html> <html xmlns:th="http//www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{layouts/layout1}"> <head> <meta charset="UTF-8"> <title>(❁´◡`❁)</title> </head> <body> <h2>show5 문서(레이아웃 결과)</h2> <div layout:fragment="content"> <table border="1"> <tr> <th>번호</th><th>종류</th> </tr> <tr> <td>1</td><td>짱구</td> </tr> <tr> <td>2</td><td>유리</td> </tr> <tr> <td>3</td><td>철수</td> </tr> </table> </div> </body> </html>
👏 중요
layout으로 묶인 부분만 들어간다.
즉, 위의 코드의 h2 태그는 layout에 포함되지 않기에 들어가지 않는다.
😊결과
'Spring > Spring Boot' 카테고리의 다른 글
[spring Boot] Controller 어노테이션 정리 (0) 2024.08.08 [Spring Boot] view 페이지, 템플릿 엔진에 대해서(jsp VS thymeleaf) (0) 2024.08.05 [springBoot] spring boot 실행 시 로그 (0) 2024.08.02 [springBoot] 기본 환경 설정 (0) 2024.08.01