ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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에 포함되지 않기에 들어가지 않는다.


       

       

      😊결과

       

       

       

    Designed by Tistory.