점프 투 스프링부트를 참고하여 학습,작성하였습니다.
1.base 템플릿 만들기
layout:fragment 속성을 사용하여 특정 부분에 다른 템플릿의 내용을 삽입할 수 있도록한다.
<!doctype html>
<html lang="ko">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Spring boot Project!!</title>
</head>
<body>
<!-- 기본 템플릿 안에 삽입될 내용 Start -->
<th:block layout:fragment="content"></th:block>
<!-- 기본 템플릿 안에 삽입될 내용 End -->
</body>
</html>
2.다른 HTML 파일에 적용
<html layout:decorate="~{base}"> layout:decorate 속성은 템플릿의 레이아웃으로 사용할 템플릿을 설정
<div layout:fragment="content"> : 이부분부터 부모템플릿의 th:block 요소의 내용이 자식 템플릿의 div 요소의 내용으로 교체한다.
<html layout:decorate="~{base}">
<div layout:fragment="content">
<table>
<thead>
<tr>
<th>제목</th>
<th>작성일시</th>
</tr>
</thead>
<tbody>
<tr th:each="question : ${questionList}">
<td>
<a th:href="@{|/question/detail/${question.id}|}" th:text="${question.subject}"></a>
</td>
<td th:text="${question.createDate}"></td>
</tr>
</tbody>
</table>
</div>
3.의존성 추가
템플릿 상속을 위한 의존성을 추가해준다.
<!-- thymeleaf layout -->
<dependency>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
</dependency>
application.properties 에서 설정을 한다.
# thymeleaf config -------------------------------------------------------------
# Whether to enable a livereload.com-compatible server.
spring.devtools.livereload.enabled=true
# thymeleaf reference path
# Prefix that gets prepended to view names when building a URL.
# Suffix that gets appended to view names when building a URL.
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
# thymeleaf cache configuration
# Whether to enable template caching.
spring.thymeleaf.cache=false
# Whether to check that the templates location exists.
spring.thymeleaf.check-template-location=true
HTML base.html이 상속된것을 확인할수있다.
'BackEnd > SpringBoot' 카테고리의 다른 글
[Spring Boot] 질문등록 (0) | 2024.07.04 |
---|---|
[Spring Boot] 답변기능 제작 (0) | 2024.07.03 |
[Spring Boot] URL 프리픽스 생략 RequestMapping (0) | 2024.07.01 |