Tiles 라이브러리처럼 Spring Boot에서 사용할 수 있게 하는 라이브러리
build.gradle에 implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' 추가
다른 HTML 문서에 태그를 제공하기 위한 Thymeleaf 속성
속성값으로 태그를 구분하기 위한 식별자를 속성값으로 설정
<title>BOOT</title>
<style th:fragment="styles">
div {
margin: 10px;
}
#header {
height: 150px;
border: 1px solid red;
text-align: center;
}
#content {
min-height: 600px;
border: 1px solid green;
text-align: center;
}
#footer {
height: 150px;
border: 1px solid blue;
text-align: center;
}
</style>
</head>
<body>
<!-- fragment 속성 : 다른 HTML 문서에 태그를 제공하기 위한 Thymeleaf 속성 -->
<!-- => 속성값으로 태그를 구분하기 위한 식별자를 속성값으로 설정 -->
<div id="header" th:fragment="header">
<h2>페이지 머릿부</h2>
</div>
<div id="footer" th:fragment="footer">
<h2>페이지 꼬릿부</h2>
</div>
</body>
</html>
fragment 속성으로 설정된 태그를 제공받아 태그를 변경하는 Thymeleaf 속성
~{HTML 문서 경로 :: Fragment 식별자} 형식으로 속성값을 설정해 태그를 제공받아 사용
insert 속성 또는 include 속성으로 fragment 속성으로 설정된 태그를 제공받아 사용 가능
<title>BOOT</title>
<style type="text/css" th:replace="~{/layout :: styles}"></style>
</head>
<body>
<div th:insert="~{/layout :: header}"></div>
<div id="content">
<h2>페이지 몸체부</h2>
</div>
<div th:replace="~{/layout :: footer}"></div>
</body>
</html>

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
<meta charset="UTF-8">
<title>BOOT</title>
<style type="text/css" th:replace="~{/layout :: styles}"></style>
</head>
<body>
<div id="header" th:replace="~{/layout :: header}"></div>
<!-- content 이름의 태그를 포함되도록 설정 -->
<div id="content" layout:fragment="content"></div>
<div id="footer" th:replace="~{/layout :: footer}"></div>
</body>
</html>
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{template}">
<head>
<meta charset="UTF-8">
<title>BOOT</title>
</head>
<body>
<div id="content" layout:fragment="content">
<h2>첫번째 요청 페이지</h2>
</div>
</body>
</html>

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{template}">
<head>
<meta charset="UTF-8">
<title>BOOT</title>
</head>
<body>
<div id="content" layout:fragment="content">
<h2>두번째 요청 페이지</h2>
</div>
</body>
</html>
