【Spring Boot】Thymeleaf 模板引擎

发布时间 2023-09-13 09:19:44作者: Phoenixy

 Thymeleaf组成:标签 + 表达式,标签是Thymeleaf的语法结构,而表达式就是语法里的内容实现

 

 pom.xml 添加依赖包

        <!-- 模板引擎 Thymeleaf 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <version>2.1.6.RELEASE</version>
        </dependency>

 

在html页面中引入thymeleaf命名空间

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

 

基本表达式

${...} 变量表达式,用于访问容器上下文环境中的变量,功能同jstl中${}

*{...} 选择表达式,一般是th:object之后,直接取Object中的属性。当没有选取对象时,其功能等同于${...}

#{...} 消息表达式 通常与th:text属性一起使用,指明声明了th:text的标签的文本是#{}中的key所对应的value,而标签内的文本将不会显示
消息表达式通常用于显示页面静态文本,将静态文本维护在properties文件中也方面维护,做国际化等    

@{...} 超链接url的表达式 例如:
<script th:src="@{/resources/js/jquery/jquery.json-2.4.min.js}"

#maps 工具对象表达式。常用于日期、集合、数组对象的访问。这些工具对象就像是java对象,可以访问对应java对象的方法来进行各种操作
其他工具对象表达式  #dates  #calendars #numbers #strings #objects #bools #arrays #lists #sets

 

 

常用属性

th:action   定义后台控制器路径,类似<form>标签的action属性 例如:
    <form id="login-form"   th:action="@{/login}">...</form>

th:each  对象遍历,功能类似jstl中的<c:forEach>标签

th:object 用于表单数据对象绑定,将表单绑定到后台controller的一个JavaBean参数。常与th:field一起使用进行表单数据绑定

th:value 用于标签赋值,类似<option>标签的value属性。

th:field 常用于表单字段绑定。通常与th:object一起使用。 属性绑定、集合绑定。

th:href 定义超链接,类似<a>标签的href 属性。value形式为@{/logout} 例如:
     <a th:href="@{/logout}" class="signOut"></a>
     
th:src 用于外部资源引入,类似于<script>标签的src属性,常与@{}一起使用    

th:id  div id声明,类似html标签中的id属性。

th:text 文本显示

th:if 条件判断。例如:
   <div th:if="${rowStat.index} == 0">... do something ...</div>

th:fragment 声明定义该属性的div为模板片段,常用与头文件、页尾文件的引入。常与th:include,th:replace一起使用。
th:include
th:replace
例如:
  声明模板片段 /WEBINF/templates/footer. html 
    <div th: fragment=" copy" >
      Demo
    </div>
引入模板片段 
<div th: include=" /templates/footer : : copy" ></div>
<div th: replace=" /templates/footer : : copy" ></div>