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/。