什么是Thymeleaf
Thymeleaf是一个既可以应用在web项目,也可以应用在非Web项目的服务端的Java模板引擎,具有动静结合、多表达式支持、受springboot支持的特点,今天的主要目的就是来阐述关于它的表达式的事。
它总共提供四种表达式。
一、${} 表达式
${}这个能直接获取Model字符串的属性值,也可以获取对象的属性。也可以用 . 来表示属性的关系。
看个例子:
<div>
<p th:text="${emp.name}">
</div>
这个就表示emp的name属性
二、*{} 表达式
算是另一种方式的简化
<div th:object="${emp}">
<p th:text="*{name}">
</div>
可以看到这个例子,th:object指定对象,
而*{} 则可以直接代指该对象的属性,某种程度上的优化吧。
三、@{}表达式
这个表达式的作用就是拼接路径,看了例子就熟悉了,
<a th:href="@{/index}">点击</a>
<a th:href="/index">点击</a>
效果一样都是跳转到index下,但是如果打包成war包,则@{}表达式会在URL中加上项目名,这是自己需要注意的地方。
<a th:href="@{/index(userId=1)}">点击</a>
<a th:href="/index?userId=1">点击</a>
效果是一样的,都代表带一个userId=1的参数。
还有就是针对多参数的拼接,你可以看下使用@{}和不使用@{}的区别:
<a th:href="@{/index(userId=1,age=20)}">点击</a>
<a th:href="/index?userId=1&age=20">点击</a>
可以看到这两者存在较大的区别
四、#{}表达式
这个基本上用不到,据说用于读取国际化properties文件的属性
总结
这是一片随笔,记录自己想搞懂的点,也希望能帮到看到的人。