SpringMVC中使用Thymeleaf模板引擎实例代码
作者:王学政 发布时间:2021-10-20 20:03:44
标签:springmvc,thymeleaf
本文研究的主要是SpringMVC中使用Thymeleaf模板引擎的相关内容,具体介绍如下。
Thymeleaf提供了一组Spring集成,允许您将其用作Spring MVC应用程序中全面替代JSP的功能。
Maven依赖
<!-- thymeleaf-spring4 -->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring4</artifactId>
<version>3.0.6.RELEASE</version>
</dependency>
配置模板解析器
JavaConfig的方式:
@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的方式
<!-- 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中的视图和视图分解器
@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的格式:
<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>
来源:http://blog.csdn.net/w_x_z_/article/details/72730603
0
投稿
猜你喜欢
- 单一职责原则:一个类,只有一个引起它变化的原因。为什么需要单一职责原则?如果一个类有多个原因要去修改它,那么修改一个功能时,可能会让其他功能
- 一、区别Java中启动线程有两种方法,继承Thread类和实现Runnable接口,由于Java无法实现多重继承,所以一般通过实现Runna
- 原装的Android标题栏配色比较单调,就是黑色的一坨,现在假设你的软件需要独自添加标题栏,这样不仅美观而且可以将进度条等加进去,如何实现:
- 前言因为工作原因,需要在项目中集成dubbo,所以去查询dubbo相关文档,发现dubbo目前已经不更新了,所以把目光投向了dubbox,d
- 工厂模式工厂模式顾名思义就是生产实例的工厂,使用工厂模式不会在程序中使用new关键字创建实例。而是将创建对象的细节隐藏,对外提供统一的方法,
- //路径, 添加开机启动/删除开机启动 public s
- 我对java中lambda表达式的看法是相当纠结的:一个我这么想:lambda表达式降低了java程序的阅读体验。java程序一直不以表现力
- 1.例题题目描述迷宫由 n 行 m 列的单元格组成,每个单元格要么是空地,要么是障碍物。其中1表示空地,可以走通,2表示障碍物。给定起点坐标
- 五丶封装(1)包的概念与创建1>概念在我们的电脑上有许多的文件,我们为了方便管理,大致给它们进行了不同的命名。然后在不同的文件夹下面再
- ArrayList的构造方法(前置知识)可快速过一些基本成员变量:// 默认初始大小private static final int DEF
- service是业务层 action层即作为控制器DAO (Data Access Object) 数据访问1.JAVA中Action层,
- 通常在C#的实际开发过程中,会发现设置其属性ScriptErrorsSuppressed无法达到屏蔽脚本错误效果,但是可以通过下面两种方式实
- 音乐播放需要调用service,在此,只是简单梳理播放流程。public class PlayMusicService extends Se
- 本文实例讲述了Java基于外观模式实现美食天下食谱功能。分享给大家供大家参考,具体如下:一、模式定义外观模式,是软件工程师常用的一种软件设计
- 问题描述fastjson通过代码指定全局序列化返回时间格式,导致使用JSONField注解标注属性的特殊日期返回格式失效使用版本应用名称版本
- 前言假如你做了一个云盘类的app,或者可以保存用户导入的配置。用户在未来肯定需要获取这些文件,一个办法是写一个Activity,向一个文件管
- W3C制定了XML DOM标准。很多编程语言中多提供了支持W3C XML DOM标准的API。我在之前的文章中介绍过如何使用Javascri
- 消息的保存路径消息发送端发送消息到 broker 上以后,消息是如何持久化的?数据分片kafka 使用日志文件的方式来保存生产者和发送者的消
- 在application.properties中填写中文信息,在读取该文件时会出现中文乱码问题。比如:application.propert
- 本文实例讲述了Android 开发使用PopupWindow实现加载等待界面功能。分享给大家供大家参考,具体如下:实现加载等待界面我用了两种