
あまり需要はないかもしれませんが、Spring MVCでThymeleafを設定する方法を紹介していきます。
Spring BootだとThymeleafのテンプレートファイルは、resources/templatesフォルダをデフォルトの読み込み先としていますが、Spring MVCでおなじみにwebapp/WEB-INF/へ変更する方法をメインに紹介していきます。
dependency
Spring MVCでThymeleafを使うためのdependencyはこちらです。
<dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring4</artifactId> </dependency>
Thymeleafを使ったHTML
設置場所は、main/webapp/WEB-INF/templatesの下に置いておきましょう。
<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <body> <p>Hello, thymeleaf!</p> </body> </html>
Controllerを作成する
ここは省略します。
先程作ったHTMLが表示するコントローラクラスを作ります。
作り方はおまかせです。いつものやつで作って下さい。
Thymeleafの設定を行う
さて、ここからが本題です。
Spring MVCでThymeleafの設定を変更する方法を紹介していきます。
HTMLファイルの参照フォルダを変更するのもこの部分で変更していきます。
ThymeleafConfig
ではまず、Thymeleafの設定を変更するConfigクラスを作っていきます。
ハイライトの部分でHTMLファイルを格納するためのフォルダを指定しています。こちらの指定で、main/webapp/WEB-INF/templatesを参照するようになります。
@Configuration public class ThymeleafConfig { @Bean public SpringResourceTemplateResolver templateResolver() { SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver(); resolver.setPrefix("/WEB-INF/templates/"); resolver.setSuffix(".html"); resolver.setTemplateMode("HTML5"); return resolver; } @Bean public SpringTemplateEngine templateEngine() { SpringTemplateEngine engine = new SpringTemplateEngine(); engine.setTemplateResolver(templateResolver()); return engine; } @Bean public ThymeleafViewResolver thymeleafViewResolver() { ThymeleafViewResolver resolver = new ThymeleafViewResolver(); resolver.setTemplateEngine(templateEngine()); resolver.setCharacterEncoding("UTF-8"); resolver.setOrder(1); return resolver; } }
WebMvcConfig
先程のConfigクラスだけでは不十分なので、Spring MVC起動時に読み込む設定クラスを作成していきます。
@Importで先程作成したConfigクラスを指定していきます。
@Configuration @EnableWebMvc @ComponentScan("jp.co.example") @Import(ThymeleafConfig.class) public class WebMvcConfig extends WebMvcConfigurerAdapter { }
こちらのクラスが作り終われば設定は完了です。
あとはSpring MVCのプロジェクトを起動すれば、コントローラへアクセスしてHTMLファイルを表示することができるようになります。
サンプルソース
上記のロジックはコチラのGitHubで公開しています。
バージョン
Spring Bootのバージョンは、1.5.2です。
Javaは8を使っています。
さいごに
Spring Bootを使う場面が多く、Spring MVC時代のお馴染みのwebapp/WEB-INF/フォルダを見ることが本当に少なくなってしまいました。
このブログを書きながらも、これって需要あるのかな?と疑問には思うのですが、せっかく調べたので備忘録として残しておこうと思い書いてみました。
いつかこのブログが役立つことがあればよいですね。
それでは!
この記事はお役に立てましたか?
お役に立てたことがあればシェアしていただけると嬉しいです!