Thymeleafでフラグメント式を使用

Thymeleafでフラグメント式を使用

Thymeleafでフラグメントを使用する方法を以下に示します。
フラグメントを使うと、HTMLコードの一部を再利用することができ、テンプレートの管理が容易になります。

まず、共通部分としてフラグメントを定義するファイルを作成します。
例として、header.htmlにヘッダー部分のフラグメントを定義します。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
  <meta charset="UTF-8">
  <title>タイトル</title>
</head>
<body>
  <div th:fragment="header">
    <header>
      <h1>サイトのヘッダー</h1>
      <nav>
        <ul>
          <li><a href="/">ホーム</a></li>
          <li><a href="/about">About</a></li>
          <li><a href="/contact">Contact</a></li>
        </ul>
      </nav>
    </header>
  </div>
</body>
</html>

次に、フラグメントを呼び出すテンプレートファイルを作成します。
例として、index.htmlにヘッダー部分をインクルードします。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
  <meta charset="UTF-8">
  <title>ホームページ</title>
</head>
<body>
  <div th:insert="fragments/header :: header"></div>
  <main>
    <h2>ホームページへようこそ</h2>
    <p>ここにコンテンツを追加します。</p>
  </main>
</body>
</html>

上記の例では、index.html内のdivタグにth:insert属性を使って、header.htmlのheaderフラグメントをインクルードしています。
この方法を使うと、テンプレート間で共通部分を簡単に再利用できます。