<footer>
๋ฅผ th:fragment๋ฅผ ์ด์ฉํด ์กฐ๊ฐํํ์๊ณ ์ด๋ฆ์ footerFragment๋ก ์ค์ ํ์์ต๋๋ค.
<html xmlns:th="http://www.thymeleaf.org">
<body>
<footer th:fragment="footerFragment">
<p> COPYRIGHT@ dhk22</p>
</footer>
</body>
</html>
::๋ฅผ ๊ธฐ์ค์ผ๋ก ์์๋ ์กฐ๊ฐ์ด ์๋ ๊ฒฝ๋ก๋ฅผ, ๋ค์๋ ์กฐ๊ฐ์ ์ด๋ฆ์ ์ค์ ํด์ค๋๋ค.
๐ฅ ID๋ฅผ ์ด์ฉํ fragment ์ฝ์
1) th:insert
insert๋ ํ๊ทธ ๋ด๋ก ์กฐ๊ฐ์ ์ฝ์
ํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
์ฌ๊ธฐ์ ํ๊ทธ ๋ด๋ <div>
์์ชฝ์ <footer>
๊ฐ ์์นํ๋ ๊ฒ์
๋๋ค.
๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ณด๋ฉด ์กฐ๊ฐํํ footer๊ฐ div ๋ด๋ก ์ฝ์
๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
2) th:replace
replace๋ ํด๋น ํ๊ทธ๋ฅผ ์์ ํ ๋์ฒดํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ณด๋ฉด ์กฐ๊ฐํํ footer๊ฐ div๋ฅผ ๋์ฒดํ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
3) th:include
include๋ ๋ด์ฉ๋ง ์ฝ์
ํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ณด๋ฉด <footer>
๊ฐ ์๋ต๋์ด์์ต๋๋ค.
Fragment๋ฅผ ์ด์ฉํ ๋ ํจ์์ ์ ์ฌํ๊ฒ parameter ๊ฐ ์ ๋ฌ ๊ฐ๋ฅ
<!-- /WEB-INF/templates/footer.html -->
<div th:fragment="frag(onevar, twovar)">
<p th:text="${onevar} + ' - ' + ${twovar}">...</p>
</div>
<div th:insert="footer::frag(${value1}, ${value2})">...</div>
parameter๋ฅผ ๊ฐ๋ fragment๋ฅผ ์ด์ฉํด์ template layout ์ ์
thymeleaf template engine์์ ์ฒ๋ฆฌํ์ง ์๊ณ ์ ๊ฑฐํ ์๋ฆฌ๋จผํธ๋ฅผ ํ์
<tr class="odd" th:remove="all">
<td>Blue Lettuce</td>
<td>9.55</td>
<td>no</td>
</tr>
<tr th:remove="all">
<td>Mild Cinnamon</td>
<td>1.99</td>
<td>yes</td>
</tr>
<!--login/loginForm.html -->
<form action="#" th:action="@{login}" th:object="${loginCommand}"method="post">
<p>
<label for="email" th:text="#{email}">email</label>:<br>
<input type="text" th:field="*{email}" />
</p>
<!-- <input type="text" id="email"name="email"th:value="*{email}"/> ๊ณผ๋์ผ -->
<p>
<label for="password" th:text="#{password}">password</label>:<br>
<input type="password" th:field="*{password}" />
</p>
<p>
<input type="checkbox" th:field="*{rememberEmail}" value="true"/>
</p>
<input type="submit"value="๋ก๊ทธ์ธ" th:value="#{login.btn}">
</form>
<form>
์ th:object ์์ฑ์ ์ด์ฉํด์ command ๊ฐ์ฒด ์ง์