maven 的pox.xml
<!-- thymeleaf -->
<thymeleaf.version>3.0.6.RELEASE</thymeleaf.version>
<!-- thymeleaf -->
<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>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity4</artifactId>
<version>3.0.2.RELEASE</version>
</dependency>
config的配置
templateResolver.setPrefix("/WEB-INF/templates/"); 模板存放路径
viewResolver.setViewNames(new String[]{"thymeleaf/*"}); 用于多视图解析器时候的 区分
/**
* 模板解析器
*
* @author dong.tl
* @date 2017年5月18日 上午9:36:34
* @return
*/
@Bean
public ITemplateResolver templateResolver() {
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setTemplateMode("HTML5");
templateResolver.setPrefix("/WEB-INF/templates/");
templateResolver.setSuffix(".html");
templateResolver.setCharacterEncoding("utf-8");
templateResolver.setOrder(1);
templateResolver.setCacheable(false);
return templateResolver;
}
/**
* 模板引擎
*
* @author dong.tl
* @date 2017年5月18日 上午9:36:20
* @return
*/
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolver(templateResolver());
// 注册安全方言
templateEngine.addDialect(new SpringSecurityDialect());
return templateEngine;
}
/**
* Tymeleaf 视图解析器
*
* @author dong.tl
* @date 2017年5月18日 上午9:35:53
* @return
*/
@Bean
public ViewResolver thymeleafViewResolver() {
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(templateEngine());
viewResolver.setCharacterEncoding("utf-8");
// 通过ViewNames属性来实现,通过请求中返回的视图名称匹配其采用哪个对应的视图解析器处理,从而找到SpringResourceTemplateResolver对应prefix下的页面
//viewResolver.setViewNames(new String[]{"thymeleaf/*"});
return viewResolver;
}
html模板
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script th:href="@{/res/js/jquery-1.9.1.min.js}"></script>
<script th:inline="javascript">
/*<![CDATA[*/
var username = 'John Apricot';
/*]]>*/
</script>
</head>
<body>
看看中文
</body>
</html>
这样thymeleaf 就配置OK了
还有一种情况是 发送email时需要html模板
需要添加bean
/**
* 从类路径解析 Thymeleaf
* @author dong.tl
* @date 2017年5月18日 上午10:21:12
* @return
*/
@Bean
public ClassLoaderTemplateResolver emailTemplateResolver(){
ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
resolver.setTemplateMode("HTML5");
resolver.setPrefix("mail/");
resolver.setSuffix(".html");
resolver.setCharacterEncoding("utf-8");
resolver.setOrder(0);
return resolver;
}
然后改造下SpringTemplateEngine
@Bean
public SpringTemplateEngine templateEngine(Set<ITemplateResolver> resolves) {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolvers(resolves);
// 注册安全方言
templateEngine.addDialect(new SpringSecurityDialect());
return templateEngine;
}