thyemeaf继续迭代升级学习

98 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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 (!=).