关于Thymeleaf的表达式


什么是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文件的属性

总结

这是一片随笔,记录自己想搞懂的点,也希望能帮到看到的人。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_51759592/article/details/125613762
今日推荐