视频链接: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: 调用:
测试:
|