今天使用thymeleaf layout布局时总是不生效,特此把解决问题的步骤和几个关键点记录下来备忘。
一、检查依赖
1.thymeleaf必备maven依赖:
<dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf</artifactId> <version>${thymeleaf.version}</version> </dependency> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring4</artifactId> <version>${thymeleaf.version}</version> </dependency>
2.如果使用layout布局,还需要添加:
<dependency> <groupId>nz.net.ultraq.thymeleaf</groupId> <artifactId>thymeleaf-layout-dialect</artifactId> <version>2.2.2</version> </dependency>
二、配置视图引擎
1.配置thymeleaf作为视图引擎
<!-- Thymeleaf View Resolver - implementation of Spring's ViewResolver interface --> <bean id="viewResolver" class="org.thymeleaf.spring4.view.ThymeleafViewResolver"> <property name="templateEngine" ref="templateEngine" /> <property name="characterEncoding" value="UTF-8" /> </bean> <!-- Thymeleaf Template Engine (Spring4-specific version) --> <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine"> <property name="templateResolvers"> <set> <ref bean="templateResolver" /> </set> </property> </bean> <!-- Thymeleaf Template Resolver --> <bean id="templateResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver"> <property name="prefix" value="/WEB-INF/templates/" /> <property name="templateMode" value="HTML" /> <property name="suffix" value=".html"></property> <property name="characterEncoding" value="UTF-8"></property> </bean>
2.使用layout还需要在templateEngine添加如下节点:
<bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine"> …… <property name="additionalDialects"> <set> <bean class="nz.net.ultraq.thymeleaf.LayoutDialect"/> </set> </property> </bean>
三、页面
task/layout.html
<!DOCTYPE html> <html lang="en" xmlns:layout="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> <title>mysite</title> </head> <body> <div class="container"> <div class="row"> <div class="span3" th:insert="fragments/menu::menu"></div> <div class="span9" layout:fragment="content"></div> </div> </div> </body> </html>
index.html
<!DOCTYPE html> <html lang="en" layout:decorator="task/layout"> <head> <meta charset="utf-8"> <title>index</title> </head> <body> <div layout:fragment="content"> <h1> Welcome! </h1> </div> </body> </html>
三、版本号
如果检查了以上几项还是没问题,最后还有一点值得注意的,就是thymeleaf和thymeleaf-layout-dialect的版本。
我最后就是调整了maven依赖的版本号,终于成功了。
作者:陈敬(公众号:敬YES)
出处:http://www.cnblogs.com/janes/
博客文章仅供交流学习,请勿用于商业用途。如需转载,请务必注明出处。