1.Thymeleaf简介Thymeleaf是一种类似于JSP的动态网页技术
- JSP必须依赖Tomcat运行,不能直接运行在浏览器中。即idea中打开jsp页面就会错误
- HTML可以直接运行在浏览器中,但是不能接受控制器传递的数据(不能jstl+el展示数据)
- Thymeleaf是一种既保留了HTML的后缀能直接在浏览器运行的能力、又实现了JSP显示动态数据的功能----静能查看页面状态、动能显示数据
2.Thymeleaf的使用
SpringBoot应用能对Thymeleaf提供良好支持
项目为springboot-ssm。
2.1 添加Thymeleaf的依赖组starter创建项目时,也可以直接添加依赖组
2.2 创建Thymeleaf模板org.springframework.boot spring-boot-starter-thymeleaf
Thymeleaf模板就是HTML文件
- SpringBoot应用中,resourcestemplates目录就是用来存放页面模板的
- 重要说明:
- static目录下的资源被定义静态资源,SpringBoot应用默认放行;
如果将HTML页面创建static目录是可以直接访问的 - templates目录下的文件被定义为动态网页模板,SpringBoot应用会拦截templates中的资源;
如果将HTML页面创建在templates目录,则必须通过控制器访问跳转
- static目录下的资源被定义静态资源,SpringBoot应用默认放行;
- 在templates创建HTML页面模板
- 创建PageController,用于转发允许"直接访问"的页面请求
@Controller
@RequestMapping("/yty")
public class PageController {
@RequestMapping("/test1.html")
public String test1(){
return "test1";
}
}
访问的时候,就是“localhost端口号/yty/test1.html”。单从路径看,感觉test1.html页面是被直接访问的,其实那是因为我的controller名是test.html,这也是为什么上面”直接访问“打引号的原因。
2.3 Thymeleaf基本语法2.3.1 在Thymeleaf模板页面引入th标签的命名空间 2.3.2 th:text如果要在Thymeleaf模板中获取从控制器传递的数据,需要使用th标签
在几乎所有的HTML双标签都可以使用th:text属性,将接收到的数据显示在标签的内容中
2.3.3 th:inline内联
- HTML内联
- CSS内联
- Javascript内联
- th:if 如果条件不成立,则不显示此标签
- th:switch 和 th:case
2.5.2 碎片使用案例碎片,就是HTML片段,可以将多个页面使用相同的HTML标签部分单独定义,然后通过th:include可以在HTML中引入定义的碎片。
(可以理解成全局变量和局部变量,但是本质上又有区别)
- 定义碎片 th:fragment
- 引用碎片 th:include和th:replace
a.html



