携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第7天,点击查看活动详情
Thymeleaf的产生的背景就是将model中的数据渲染到html中,所以掌握这部分将model转换为html的原理必然是学习Thymeleaf避不掉的一门比学科
- 变量、方法、条件判断、循环、运算 (逻辑运算、布尔运算、比较运算、条件运算)
- Thymeleaf通过
${}来获取model中的变量,这个稍微使用过应该都不会很陌生的,注意这不是el表达式,而是ognl表达式。
正常情况下我们获取用户的所有信息,分别展示。
当数据量比较多的时候,频繁的写user.就会非常麻烦。
因此,Thymeleaf提供了自定义变量来解决:
示例:
<h2 th:object="${user}">
<p>Name: <span th:text="*{name}">Jack</span>.</p>
<p>Age: <span th:text="*{age}">21</span>.</p>
<p>friend: <span th:text="*{friend.name}">Rose</span>.</p>
</h2>
- 我们将user对象临时缓存起来,这个时候只要在生命周期内即h2标签内就可以完成user对象内部属性的获取,这样就不需要我们每次通过user.来进行获取了。
| 对象 | 作用 |
|---|---|
#ctx | 获取Thymeleaf自己的Context对象 |
#requset | 如果是web程序,可以获取HttpServletRequest对象 |
#response | 如果是web程序,可以获取HttpServletReponse对象 |
#session | 如果是web程序,可以获取HttpSession对象 |
#servletContext | 如果是web程序,可以获取HttpServletContext对象 |
方法拼接
- 在Java语言中字符串的拼接是需要借助于“ 或者 ‘ 来进行字符串的识别的,说实话有的时候这两个符号真的不好搞定,在Thymeleaf中只需要通过| 来进行识别
运算
-
一开头我们就说到thymeleaf是具有运算功能的。OGNL就是其核心运算能力,外部的才是通过Thymeleaf的引擎解析,因此运算符尽量放在
${}外进行。- 支持的比较运算:>,<,>=and<=,但是>,<不能直接使用,因为xml会解析为标签,要使用别名。注意
==and!=不仅可以比较数值,类似于equals的功能。可以使用的别名:
gt (>), lt (<), ge (>=), le (<=), not (!). Also eq (==), neq/ne (!=).