在SpringBoot中使用Thymeleaf模板引擎

在SpringBoot中使用Thymeleaf模板引擎

Springboot默认是不支持JSP的,默认使用thymeleaf模板引擎。

Thymeleaf 官网:https://www.thymeleaf.org/

1、引入pom依赖

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2配置文件application.properties中配置

1
2
3
4
5
6
spring.thymeleaf.cache=false
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
spring.thymeleaf.mode=HTML5

建议使用application.yaml

1
2
3
4
5
6
7
spring:
thymeleaf:
cache: false
encoding: UTF-8
mode: HTML5
prefix: classpath:/templates/
suffix: .html

3在resources/templates新建文件

在resources/templates/这个文件目录下面新建HTML文件时,头文件要加上

1
<html lang="en" xmlns:th="http://www.thymeleaf.org">

4th属性

  1. th:text :设置当前元素的文本内容,相同功能的还有th:utext,两者的区别在于前者不会转义html标签,后者会。优先级不高:order=7
  2. th:value:设置当前元素的value值,类似修改指定属性的还有th:srcth:href。优先级不高:order=6
  3. th:each:遍历循环元素,和th:text或th:value一起使用。注意该属性修饰的标签位置,优先级很高:order=2
  4. th:if:条件判断,类似的还有th:unlessth:switchth:case。优先级较高:order=3
  5. th:insert:代码块引入,类似的还有th:replaceth:include,三者的区别较大,若使用不恰当会破坏html结构,常用于公共代码块提取的场景。优先级最高:order=1
  6. th:fragment:定义代码块,方便被th:insert引用。优先级最低:order=8
  7. th:object:声明变量,一般和*{}一起配合使用,达到偷懒的效果。优先级一般:order=4
  8. th:attr:修改任意属性,实际开发中用的较少,因为有丰富的其他th属性帮忙,类似的还有th:attrappend,th:attrprepend。优先级一般:order=5