【SpringMVC】でThymeleafを利用

JSPではサーブレット側の処理を記載していないと
値が渡せないので、画面側のデザインが値ありで確認しにくかったりしていましたが、
Thymeleafでは値がある場合、ない場合の動作を切り分けられる点、
また便利なタグが多い点から利用してみます。

  • src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml

    • コントローラーの処理終了後に呼び出される画面用ファイルの指定
      この部分を変更します。

      【変更前】

      <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/views/" />
        <beans:property name="suffix" value=".jsp" />
      </beans:bean>
      

      【変更後】

      <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.spring3.SpringTemplateEngine">
        <beans:property name="templateResolver" ref="templateResolver" />
      </beans:bean>
      
      <beans:bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
        <beans:property name="characterEncoding" value="UTF-8" />
        <beans:property name="templateEngine" ref="templateEngine" />
      </beans:bean>
      
  • pom.xml
    「dependencies」タグの中に下記内容を追加します。

    • Thymeleafライブラリー

      <!-- Thymeleaf -->
      <dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf-spring3</artifactId>
        <version>2.1.2.RELEASE</version>
      </dependency>