一.Thymeleaf是什么?
简单说, Thymeleaf 是一款用于渲染XML/XHTML/HTML5内容的模板引擎,类似我之前用过的FreeMarker 。由于它支持 html 原型,然后在 html 标签里
通过增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。
优势:1.Thymeleaf 开箱即用的特性。它提供标准和spring标准两种方言。
2.Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。
1.添加依赖。
2.html 页面需添加:
二.基本使用.
1.定义和引用模板
日常开发中,我们经常会将导航栏,页尾,菜单等部分提取成模板供其它页面使用。
在Thymeleaf 中,我们可以使用th:fragment
属性来定义一个模板。
我们可以新建一个简单的页尾模板,如:/WEB-INF/templates/footer.html,内容如下:
上面定义了一个叫做copyright
的片段,接着我们可以使用th:include
或者th:replace
属性来使用它:
th:include 和 th:replace区别
th:include 是加载模板的内容,而th:replace则会替换当前标签为模板中的标签
三.其他常见,字面量,对象,集合等的应用
后台存入了测试数据
@PostMapping("/greet") public ModelAndView greetingSubmit(@ModelAttribute(value="greeting") Greeting greeting) { ModelAndView mov = new ModelAndView("result"); greeting.setNow(new Date()); greeting.setRole("admin"); ArrayListlist = new ArrayList<>(); list.add(greeting); list.add(greeting); list.add(greeting); mov.addObject("greeting",greeting); mov.addObject("name","bin"); mov.addObject("execMode","execMode"); mov.addObject("list",list); return mov; }
页面的获取方法
Getting Started: Handling Form Submission Result
2017-12-01
User is admin
User is a manager
这里的内容都会输出
id content now Onions 2.41 8 Thymeleaf提供了一系列Utility对象(内置于Context中),可以通过#直接访问
#dates创建日期
String判断字符串是否为空
String判断内对象是否为空
String判断内长度
String判断equals
Submit another message
页面展示的效果
四.表单中的使用
测试表单
其中th:object="${greeting}"指定了对象属性绑定。与后台控制器接受的对象一致,如下:
@PostMapping("/greet") public ModelAndView greetingSubmit(@ModelAttribute(value="greeting") Greeting greeting) { ... return mov; }