共通レイアウトにページを適用させる場合
共通レイアウト
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
lang="ja">
<body>
<div layout:fragment="contents"></div>
</body>
</html>
各ページ
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="~{layout/layout}">
<body>
<div layout:fragment="contents">
</body>
</html>
画面に部品化したHTMLを埋め込みたい場合
部品側
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<body>
<div th:fragment="method" th:remove="tag"></div>
</body>
</html>
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="~{layout/layout}">
<body>
<div th:insert="~{layout/parts :: method}"></div>
</body>
</html>
おまけ
部品を指定する際の~{}は、今後のアップデートで削除される予定です。
現在v3.0系ですでに非推奨となっているので、つけておきましょう。
th:includeというものもありますが、こちらも古い書き方です。
今後は削除される予定なので使用しないようにしましょう
コメント