ViewのテンプレートエンジンにThymeleafを使用する

ViewのテンプレートエンジンとしてThymeleafを使用する方法を説明します。

Tip

Thymeleafには、以下のメリットがあります。

  • ドキュメントが豊富で容易に利用できます。(一部日本語化されたドキュメントも提供されています)

  • プロダクション環境で利用するテンプレート(html)をそのままブラウザで表示して確認できます。

Tip

以下のリンク先にあるとおり、Spring Bootでは、特別な理由がない限りテンプレートエンジンにJSPを使用するのは避けるべきとされています。

以下のサンプルコードの動作確認環境については、 動作確認環境と依存ライブラリについて を参照してください。

テンプレートエンジンとしてThymeleafを使用できるようにする

pom.xml

依存ライブラリにspring-boot-starter-thymeleafを追加することで、Thymeleafが使用できるようになります。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

テンプレートの配置とControllerでの指定

テンプレートは、下の例のようにsrc/main/resources/templates配下に配置します。

src\main\resources\templates
  │  user.html
  │
  ├─common
  │      footer.html
  │      head.html
  │      header.html
  │
  └─default
          completion.html
          input.html

Controllerで指定するテンプレートのファイル名には、templatesより下のパスを指定します。拡張子(.html)の指定は省略可能です。 templates/default/input.htmlを使用したい場合には、Controllerでは下の例のようにdefault/inputと指定します。

@GetMapping
public String get(Model model) {
    model.addAttribute("nowDate", LocalDate.now());
    return "default/input";
}

サンプル全体は template-engine-thymeleaf-sample を参照してください。