Thymeleaf 集成spring

如需先了解Thymeleaf的单独使用,请参考《Thymeleaf模板引擎使用》一文。

依赖的jar包

Thymeleaf 已经集成了spring的3.x,4.x版本,因此需要在项目的classpath路径下加入thymeleaf- spring3- {version}.jar 或thymeleaf- spring4- {version}.jar。

配置Thymeleaf模板解析器与spring模板引擎

要将Thymeleaf 整合到spring中,只需将模板解析器实例和模板引擎实例以bean的方式配置到spring的配置文件中,让spring 容器自动管理模板解析器实例和模板引擎实例,和手动代码创建模板解析器实例和模板引擎实例原理是一样的。如下:

和手动代码创建解析器一样,需要通过模板解析器设置前置,后缀,模板节点。同理,注入解析器创建模板引擎。注意这里的模板解析器是整合了spring的模板引擎

org.thymeleaf.spring4.SpringTemplateEngine,

而不是org.thymeleaf.TemplateEngine.TemplateEngine。

更多关于模板解析器与模板引擎的创建详见“Thymeleaf模板引擎使用”一文。

视图以及视图解析器

View接口通常通过一些模板引擎的执行像JSP(或Thymeleaf)控制着实际的html页面的渲染。视图模型页面允许我们通过定义成beans的方式修改和预定义页面行为。ViewResolvers针对具体的操作和语言环境获取视图对象。通常情况下,控制器要求ViewResolvers通过一个特定的视图名称(控制器方法返回的一个字符串)去转发一个视图,然后应用中的所有视图解析器以执行链的方式执行,直到有一个能解析这个视图为止,在这种情况下,一个View对象被返回,并传递控制流程重新渲染html页面。

springmvc有两个接口支持着核心模板系统,他们是:

org. springframework. web. servlet. View

org. springframework. web. servlet. ViewResolver

而Thymeleaf中支持着核心模板系统的接口是:

org. thymeleaf. spring4. view. ThymeleafView

org. thymeleaf. spring4. view. ThymeleafViewResolver

在spring的配置文件中配置thymeleaf视图解析器如下:

OK,thymeleaf整合spring的基本配置完成了。SpringMVC的配置只需在spring的配置文件中配置自动扫描包即可。

更多可选配置请访问官方网站http://www.thymeleaf.org/。

实例演示

主页面home.html

控制器

返回成功页面success.html

Thymeleaf通过“th:object”属性将整个表单绑定到命令对象(bean)passengerReqBean,通过“th: field”属性将表单属性绑定到命令对象的属性。需要注意的是,命令对象的指定必须使用表达式“${}”,且没有属性导航,也就是说th:object="${passengerReqBean.firstName}"是无效的。运行结果

更多表单元素的绑定请访问官方网站http://www.thymeleaf.org/。

Thymeleaf 集成spring的更多相关文章

  1. SpringBoot 集成Spring security

    Spring security作为一种安全框架,使用简单,能够很轻松的集成到springboot项目中,下面讲一下如何在SpringBoot中集成Spring Security.使用gradle项目管 ...

  2. Spring Boot 2.X(十八):集成 Spring Security-登录认证和权限控制

    前言 在企业项目开发中,对系统的安全和权限控制往往是必需的,常见的安全框架有 Spring Security.Apache Shiro 等.本文主要简单介绍一下 Spring Security,再通过 ...

  3. MyBatis6:MyBatis集成Spring事物管理(下篇)

    前言 前一篇文章<MyBatis5:MyBatis集成Spring事物管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事物的做法,本文的目的是在这个的基 ...

  4. CXF集成Spring实现webservice的发布与请求

    CXF集成Spring实现webservice的发布(服务端) 目录结构: 主要代码: package com.cxf.spring.pojo; public class User { int id ...

  5. Dubbo集成Spring与Zookeeper实例

    >>Dubbo最佳实践 使用Dubbo结合Zookeeper和Spring,是使用比较广泛的一种组合,下面参考官方文档,做个简单的示例,一步步搭建一个使用dubbo结合Zookeeper和 ...

  6. 06_在web项目中集成Spring

    在web项目中集成Spring 一.使用Servlet进行集成测试 1.直接在Servlet 加载Spring 配置文件 ApplicationContext applicationContext = ...

  7. Hibernate 检索查询的几种方式(HQL,QBC,本地SQL,集成Spring等)

    1.非集成Spring hibernate的检索方式,主要有以下五种. 1.导航对象图检索方式.(根据已经加载的对象,导航到其他对象.) 2.OID检索方式.(按照对象的OID来检索对象.) 3.HQ ...

  8. SpringMVC 3.1集成Spring Security 3.1

    这篇算是一个入门文章,昨天看见有网友提问,spring mvc集成spring security 的时候出错,揣测了一下问题木有解决.我就帮忙给搭建了一个集成框架他说可以,他告诉我这样的文章网上少.今 ...

  9. 【Spring】关于Boot应用中集成Spring Security你必须了解的那些事

    Spring Security Spring Security是Spring社区的一个顶级项目,也是Spring Boot官方推荐使用的Security框架.除了常规的Authentication和A ...

随机推荐

  1. js判断手机端操作系统(Andorid/IOS),并自动为链接添加相应下载地址

    <script type="text/javascript"> $(document).ready(function(e) { var u = navigator.us ...

  2. SEH-关于捕获memcpy的异常

    网上有说memcpy是C语言写的,没有异常处理机制. 但是貌似SEH可以处理. SEH("Structured Exception Handling"),即结构化异常处理·是(wi ...

  3. supersr--控制器的生命周期:

    调用顺序为 1 init函数(init;initWithFrame;initWithCoder;等)--初始化 2 awakeFromNib--在loadView之前的工作放在这里 3 viewDid ...

  4. ios block中引用self

    __block __weak typeof(self) tmpSelf = self; ^(){ tmpSelf...... }

  5. IOS中定时器NSTimer的开启与关闭

    调用一次计时器方法: myTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(scro ...

  6. LeetCode : 93. Restore IP Addresses

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABZ4AAAHUCAYAAAC6Zj2HAAAMFGlDQ1BJQ0MgUHJvZmlsZQAASImVlw

  7. iOS,Objective-C,相册功能的实现。

    #import "ViewController.h" #define kuan [UIScreen mainScreen].bounds.size.width #define ga ...

  8. Jmeter 函数

    一._csvRead 函数 _cvsRead函数是从外部读取参数,csvRead函数可以从一个文件中读取多个参数. 步骤: 1.先新建一个文件,例如c.txt,里面的数据存放为 web@qq.com, ...

  9. gitlab 建仓的流程

    repository:仓库 Git global setup: git config --global user.name "Administrator" git config - ...

  10. Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)

    位运算符主要针对二进制,它包括了:“与”.“非”.“或”.“异或”.从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算.下面 ...