Spring BootのThymeleaf設定方法

spring

Spring BootからThymeleafを使うための設定方法を紹介します。

また、Thymeleafが読み込むhtmlファイルの場所やファイル拡張子をデフォルトからオリジナルへ変更する設定方法もあわせて紹介していきます。

[スポンサーリンク]

dependency

Thymeleafを使うためのdependencyはこれだけでOK。

<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf-spring4</artifactId>
</dependency>

Thymeleafを使ったHTML

それでは続いてHTMLファイルを作っていきましょう。
今回はサンプルなのでシンプルなHTMLを作ります。

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<body>
  <p>Hello, thymeleaf!</p>
</body>
</html>

HTMLを設置する場所

先程作成したHTMLはmain/resources/templatesに設置します。

Thymeleafはデフォルトでこちらのフォルダを参照するので、デフォルトでOKなら特に設定する必要はありません。

フォルダの場所もhtmlという拡張子もデフォルトから変更することができます。こちらの変更方法はこのあと紹介していきます。

Controllerを作成する

さきほどのHTMLを表示するために、コントローラクラスを続いて作っていきます。

@Controller
public class TopController {

    @RequestMapping("/")
    public String hello() {
        return "top";
    }
}

6行目を見てください。

こちらの記述で、このコントローラが実行したあとどのHTMLファイルを表示するかを決めています。

.htmlの拡張子は不要です。

main/resources/templatesまでのフォルダパスも不要です。

しかし、templates配下にフォルダがある場合は、xxx/topのようにフォルダを指定する必要があります。

ここまででSpring BootでThymeleafを動かすことができるようになりました。

プロジェクトを起動して、localhost:8080へアクセスしてみて下さい。先程のtop.htmlが表示されます。

Thymeleafのデフォルト値を変更する

ConfigクラスでこちらのBeanを生成して、フォルダ場所へ拡張子やその他モロモロの設定を変更することができます。

@Configuration
public class ThymeleafConfig {

    @Bean
    public SpringResourceTemplateResolver defaultTemplateResolver() {
        SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
        resolver.setPrefix("classpath:/templates/");
        resolver.setSuffix(".html");
        resolver.setTemplateMode("HTML5");
        resolver.setCacheable(false);
        return resolver;
    }
}

上記の設定は全てデフォルト値となりますが、自分で作ったプロジェクトの構成に従ってそれぞれの値を変えてみてください。

特にデフォルト値をそのまま使うというのであれば、こちらのConfigクラスは不要です。

サンプルソース

上記のロジックはコチラのGitHubで公開しています。

こちらのプロジェクトへConfigクラスも含めています。

バージョン

Spring Bootのバージョンは、1.5.2です。
Javaは8を使っています。

さいごに

Spring Bootでjspファイルを使うという場面は今後あまりないと思います。ほとんどの場面でThymeleafが使われていくはずです。

Thymeleafの構文の前に設定方法はしっかりとおさえておきましょう!

それでは!