Thymeleafでタグの置き換え(replace)をする方法
Thymeleafでタグの置き換えをする方法は、th:replace 属性を使います。
th:replace 属性を使うことで、別のテンプレートを読み込んで、現在のテンプレートのタグを置き換えることができます。
以下に具体的な例を示します。
example.html (メインテンプレート)
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>置き換え例</title> </head> <body> <div th:replace="fragments/header :: headerFragment"></div> <p>ここはメインのコンテンツです。</p> <div th:replace="fragments/footer :: footerFragment"></div> </body> </html>
fragments/header.html (ヘッダーのフラグメント)
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <body> <div th:fragment="headerFragment"> <header> <h1>サイトのタイトル</h1> <nav> <ul> <li><a href="/">ホーム</a></li> <li><a href="/about">アバウト</a></li> <li><a href="/contact">コンタクト</a></li> </ul> </nav> </header> </div> </body> </html>
fragments/footer.html (フッターのフラグメント)
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <body> <div th:fragment="footerFragment"> <footer> <p>© 2024 サイトの名前</p> </footer> </div> </body> </html>
この例では、example.html の中で th:replace 属性を使い、fragments/header.html と fragments/footer.html のフラグメントを読み込んでいます。
これにより、headerFragment と footerFragment の内容で、それぞれの div タグが置き換えられます。