视频链接:https://www.bilibili.com/video/BV1XQ4y1m7ex/?vd_source=9545770e4a2968c05878ffac8589ec6c 视频选集:P93— P130
Thymeleaf模板
- Thymeleaf是一个流行的模板引擎,该模板引擎采用Java语言开发
- Thymeleaf:是使用java开发的模板技术,在服务器端运行。把处理后的数据发送给浏览器。
模板是作视图层工作的。显示数据的。Thymeleaf是基于Html语言。Thymleaf语法是应用在html标签中。SpringBoot框架集成Thymealeaf,使用Thymeleaf代替jsp。 - 模板引擎是一个技术名词,是跨领域跨平台的概念,在 Java语言体系下有模板引擎,在C#、PHP语言体系下也有模板引擎,甚至在JavaScript 中也会用到模板引擎技术,Java 生态下的模板引擎有Thymeleaf 、 Freemaker、Velocity、Beetl(国产)等。
- Thymeleaf对网络环境不存在严格的要求,既能用于Web环境下,也能用于非 Web环境下。在非 Web环境下,他能直接显示模板上的静态数据;在 Web环境下,它能像Jsp一样从后台接收数据并替换掉模板上的静态数据。它是基于HTML的,以HTML标签为载体,Thymeleaf要寄托在HTML标签下实现。
- Spring Boot集成了Thymeleaf模板技术,并且Spring Boot官方也推荐使用Thymeleaf 来替代JSP技术,Thymeleaf是另外的一种模板技术,它本身并不属于Spring Boot,Spring Boot只是很好地集成这种模板技术,作为前端页面的数据展示,在过去的Java Web开发中,我们往往会选择使用Jsp去完成页面的动态渲染,但是jsp需要翻译编译运行,效率低
- Thymeleaf的官方网站: http://www.thymeleaf.org
- Thymeleaf官方手册: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html
1.模板的第一个例子
定义controller:  定义html文件:

效果:
 为了不报红:

另一种访问:
  运行效果:

2.模板引擎的常用设置


3.标准变量表达式
新建项目,配置配置文件:

3.1 ${key}
 定义实体类:
 创建jsp页面:

定义controller:  再定义jsp页面:

3.2 *{key}

controller:
 
3.3 @{url}

controller:

 jsp页面:
 测试:
 还有其它的传参方式:

4.Thymeleaf属性
4.1 基本属性
controller:

html文件:

测试效果:
 其它属性:

4.2 each
 
4.2.1 List

controller:

html页面:
 测试:

修改显示表格: 
重新测试效果:
 局部参数:
测试: 

4.2.2 循环Array
controller:
 定义html界面:
 测试运行结果:

4.2.3 循环Map
controller:  html界面:


4.2.4 List-Map
controller:

html:

测试:

4.3 条件判断if

controller:
 html页面:

测试:

4.4 unless

4.5 switch
 controller:
 html:  测试:

4.6 th:inline
th:inline有三个取值类型(text, javascript和 none)
4.6.1 内联text

controller:
 html:

测试:

4.6.2 内联javascript
 效果:

5.字面量
有文本字面量、数字字面量、boolean字面量、null字面量
controller:
 html: 
测试效果:

6.字符串连接
 controller:
 html: 
测试: 
7.运算符

controller: 
html: 
测试: 
8. Thymeleaf基本对象
模板引擎提供了一组内置的对象,这些内置的对象可以直接在模板中使用,这些对象由#号开始引用,我们比较常用的内置对象: #request表示HttpServletRequest #session表示HttpSession对象 session对象,表示Map对象,是#session的简单表达方式,用来获取session中指定的key的值 
这些是内置对象,可以在模板文件中直接使用
8.1 内置对象
controller:
 html: 
测试: 
8.2 内置对象的方法
8.2.1 #request
controller用上面的 html: 
测试:  
8.2.1 #session
html:  测试:
](https://img-blog.csdnimg.cn/b2b2c0bb56874a358d396f54036d5817.png)
8.3 内置对象查看文档

html:

测试:

9.Thymeleaf内置工具类对象

创建cat类:
 创建dog类:  zoo类:
 controller: 
9.1 #dates
html: 
测试:

9.2 #number
html:
 测试: 
9.3 #strings
html: 
测试: 
9.4 #lists
html: 
测试: 
9.5 null处理
controller: 
html:  注意:?是判断是否为空,如果为空就不取
测试: 
10.内容复用
10.1 定义模板
模板是内容复用,定义一次。在其他的模板文件中多次使用。 模板使用:
- 定义模板
- 使用模板
  html:
 
10.2 insert模板
controller:  html:

测试: 
10.3 include模板

测试:
 源代码;

10.4 整个html文件作为模板
html: 
html: 
测试: 
10.5 使用其它目录中的模板
在其它目录中定义html:  调用: 
测试:

|