表达式是在页面获取数据的一种 thymeleaf 语法,类似 ${key}
。
一、标准变量表达式
注意 :我们第一个例子中用到的
th:text=""
是 Thymeleaf 的一个属性,用于文本的显示。
-
语法 :
${key}
-
说明 :标准变量表达式用于访问容器 (tomcat) 上下文环境中的变量,功能和 EL 中的
${}
相同。Thymeleaf 中的变量表达式使用${变量名}
的方式获取 Controller 中 model 中的数据,也就是 request 作用域中的数据。
用法 :
<div th:text="${变量名}">替换的内容</div>
对于这种表达式我们在 EL 表达式中已经非常熟悉了,就不再过多举例了
二、选择变量表达式
-
语法 :
*{key}
-
说明:需要配和
th:object
一起使用。选择变量表达式,也叫星号变量表达式,使用th:object
属性来绑定对象,选择表达式首先使用th:object
来绑定后台传来的对象,然后使用 * 来代表这个对象,后面{}
中的值是此对象中的属性。 -
与标准变量表达式的异同:
选择变量表达式*{...}
是另一种类似于标准变量表达式${...}
表示变量的方法
选择变量表达式在执行时是在选择的对象上求解,而${...}
是在上下文的变量 model 上求解
用法 :
<div th:object="${user}"> // 此处的user是User 类 含有name, age的对象
<p th:text="*{name}">name</p>
<p th:text="*{age}">age</p>
</div>
<p th:text="*{user.name}"></p>
三、链接表达式 (URL 表达式)
- 语法 :
@{链接 url}
- 说明 :主要用于链接、地址的展示,可用于
<script src="...">
、<link href="...">
、<a href="...">
、<form action="...">
、<img src="">
等,可以在 URL 路径中动态获取数据。
主要用于 : 动态获取参数
<a th:href="@{'/find/student?name='+ ${name} + '&age=' + ${age}" ></a>
<a th:href="@{/find/student(name=${name}, age=${age})}"></a>
场景 :return model 返回数据到前台,超链接再次获取请求数据,然后再次跳转到其他界面