本文研究的主要是SpringMVC中使用Thymeleaf模板引擎的相关内容,具体介绍如下。
Thymeleaf提供了一组Spring集成,允许您将其用作Spring MVC应用程序中全面替代JSP的功能。
Maven依赖
1
2
3
4
5
6
|
<!-- thymeleaf-spring4 -->
< dependency >
< groupId >org.thymeleaf</ groupId >
< artifactId >thymeleaf-spring4</ artifactId >
< version >3.0.6.RELEASE</ version >
</ dependency >
|
配置模板解析器
JavaConfig的方式:
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
|
@Bean
public SpringResourceTemplateResolver templateResolver(){
// SpringResourceTemplateResolver自动与Spring自己集成
// 资源解决基础设施, 强烈推荐。
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setApplicationContext( this .applicationContext);
templateResolver.setPrefix( "/WEB-INF/templates/" );
templateResolver.setSuffix( ".html" );
// HTML是默认值, 为了清楚起见, 在此处添加。
templateResolver.setTemplateMode(TemplateMode.HTML);
// 默认情况下, 模板缓存为true。如果您想要设置为false
// 模板在修改时自动更新。
templateResolver.setCacheable( true );
return templateResolver;
}
@Bean
public SpringTemplateEngine templateEngine(){
// SpringTemplateEngine自动应用SpringStandardDialect
// 并启用Spring自己的MessageSource消息解析机制。
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolver(templateResolver());
// 使用Spring 4.2.4或更高版本启用SpringEL编译器
// 可以加快大多数情况下的执行速度, 但是当一个模板中
// 的表达式在不同数据类型之间重用时,
// 可能与特定情况不兼容, 因此该标志默认为“false”
// 以实现更安全的向后兼容性。
templateEngine.setEnableSpringELCompiler( true );
return templateEngine;
}
|
XML的方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<!-- SpringResourceTemplateResolver自动与Spring自己集成 -->
<!-- 资源解决基础设施, 强烈推荐。 -->
<bean id = "templateResolver"
class = "org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver" >
<property name = "prefix" value = "/WEB-INF/views/" />
<property name = "suffix" value = ".html" />
<!-- HTML是默认值, 为了清楚起见, 在此处添加。 -->
<property name = "templateMode" value = "HTML" />
<!-- 默认情况下, 模板缓存为 true 。如果您想要设置为 false -->
<!-- 模板在修改时自动更新。 -->
<property name = "cacheable" value = "true" />
</bean>
<!-- SpringTemplateEngine自动应用SpringStandardDialect并 -->
<!-- 使用Spring自己的MessageSource消息解析机制。 -->
<bean id = "templateEngine" class = "org.thymeleaf.spring4.SpringTemplateEngine" >
<property name = "templateResolver" ref = "templateResolver" />
<!-- 使用Spring 4.2 . 4 或更高版本启用Spring EL编译器 -->
<!-- 可以加快大多数情况下的执行速度, 但是当一个模板中 -->
<!-- 的表达式在不同数据类型之间重用时, -->
<!-- 可能与特定情况不兼容, 因此该标志默认为“ false ” -->
<!-- 以实现更安全的向后兼容性。 -->
<property name = "enableSpringELCompiler" value = "true" />
</bean>
|
Thymeleaf中的视图和视图分解器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
@Bean
public ThymeleafViewResolver viewResolver(){
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(templateEngine());
// 注意“order”和“viewNames”是可选的
viewResolver.setOrder( 1 );
viewResolver.setViewNames( new String[] { ".html" , ".xhtml" });
return viewResolver;
}
13420.2 Thymeleaf中的视图和视图分解器
@Bean
public ThymeleafViewResolver viewResolver(){
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(templateEngine());
// 注意“order”和“viewNames”是可选的
viewResolver.setOrder( 1 );
viewResolver.setViewNames( new String[] { ".html" , ".xhtml" });
return viewResolver;
}
|
或者是以XML的格式:
1
2
3
4
5
6
|
< bean class = "org.thymeleaf.spring4.view.ThymeleafViewResolver" >
< property name = "templateEngine" ref = "templateEngine" />
<!-- 注意“order”和“viewNames”是可选的 -->
< property name = "order" value = "1" />
< property name = "viewNames" value = "*.html,*.xhtml" />
</ bean >
|
总结
以上就是本文关于SpringMVC中使用Thymeleaf模板引擎实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
原文链接:http://blog.csdn.net/w_x_z_/article/details/72730603