LoginSignup
9
4

More than 5 years have passed since last update.

Spring(4.3.2)でthymeleaf(3.0.1)を使用

Posted at

2016年7月21日にthymeleaf3.0.1がリリースされました。
http://www.thymeleaf.org/download.html

今まで2.1.4を使っていましたが、色々機能追加や性能があがっているみたいなことが書いてあったので2.1.4から3.0.1へマイグレーションしてみました。

自分はJavaベースConfigurationが好きではないのでXMLベースConfigurationのやり方で実施。
まずは、2.1.4のときのpom.xmlとservlet-context.xml

pom.xml
<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf-spring4</artifactId>
    <version>2.1.4.RELEASE</version>
</dependency>
servlet-context.xml
<beans:bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
    <beans:property name="prefix" value="/WEB-INF/templates/" />
    <beans:property name="suffix" value=".html" />
    <beans:property name="templateMode" value="HTML5" />
</beans:bean>

<beans:bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
    <beans:property name="templateResolver" ref="templateResolver" />
</beans:bean>

<beans:bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
    <beans:property name="templateEngine" ref="templateEngine" />
    <beans:property name="characterEncoding" value="UTF-8" />
</beans:bean>

http://www.thymeleaf.org/doc/articles/thymeleaf3migration.html
上記サイトを参考に以下のように修正

pom.xml
<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf-spring4</artifactId>
    <version>3.0.1.RELEASE</version>
</dependency>
servlet-context.xml
<beans:bean id="templateResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">
    <beans:property name="prefix" value="/WEB-INF/templates/" />
    <beans:property name="suffix" value=".html" />
    <beans:property name="templateMode" value="HTML" />
</beans:bean>

<beans:bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
    <beans:property name="enableSpringELCompiler" value="true" />
    <beans:property name="templateResolver" ref="templateResolver" />
</beans:bean>

<beans:bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
    <beans:property name="templateEngine" ref="templateEngine" />
    <beans:property name="characterEncoding" value="UTF-8" />
</beans:bean>

templateResolverをorg.thymeleaf.templateresolver.ServletContextTemplateResolverからorg.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolverに変更

また、templateModeを"HTML5"から"HTML"に変更
"HTML5"や"XHTML"などが"HTML"に統合されたらしく、"HTML5"は非推奨になってました。
さらに3.1で削除予定とのこと
http://www.thymeleaf.org/apidocs/thymeleaf/3.0.1.RELEASE/org/thymeleaf/templatemode/TemplateMode.html

よく理解してませんが、templateEngineには"enableSpringELCompiler"をtrueにする設定を追加

これでthymeleaf3.0.1の設定完了で無事動作しました。
※URLにはApplicationContextを設定していたけど、Interfaceクラスだから何を設定していいのかわからなかったので放置。。。

9
4
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4