ThymeleafはHTMLテンプレートエンジンで、Viewとして利用します。
Springでは、ViewResolverを実装したBeanを登録することでViewとして利用できます。ThymeleafViewResolverがそのクラスになります。
パッケージを作成し、その中にTymeleafConfigクラスを作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
package net.teachingprogramming.myfirstspringapp.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.thymeleaf.spring4.SpringTemplateEngine; import org.thymeleaf.spring4.view.ThymeleafViewResolver; import org.thymeleaf.templateresolver.ServletContextTemplateResolver; /** * ThymeleafConfig */ @Configuration public class ThymeleafConfig { @Bean public ThymeleafViewResolver thymeleafViewResolver() { ServletContextTemplateResolver servletContextTemplateResolver = new ServletContextTemplateResolver(); servletContextTemplateResolver.setPrefix("/WEB-INF/templates/"); servletContextTemplateResolver.setSuffix(".html"); servletContextTemplateResolver.setTemplateMode("HTML5"); servletContextTemplateResolver.setCharacterEncoding("UTF-8"); servletContextTemplateResolver.setCacheable(true); SpringTemplateEngine springTemplateEngine = new SpringTemplateEngine(); springTemplateEngine.setTemplateResolver(servletContextTemplateResolver); ThymeleafViewResolver thymeleafViewResolver = new ThymeleafViewResolver(); thymeleafViewResolver.setCharacterEncoding("utf-8"); thymeleafViewResolver.setTemplateEngine(springTemplateEngine); return thymeleafViewResolver; } } |
12行目: @Configurationは、このクラスで設定を行うことを示します。mvc-dispatcher-servlet.xmlに記述する代わりに、Javaで設定していくことになります。
14行目: @Beanで、Bean登録を行うメソッドであることを示します。
17行目: テンプレートの置き場所を指定します。
30行目: 戻り値となるインスタンスが登録されます。
※↑はクラス名にtypoがあります。ThymeleafConfig.javaが正しいです。ただ、クラス名に特に意味は無い(@Configurationがついていれば設定用のクラスになる)ため、このままでも動作します。