ognl表达式的语法糖:
刚才获取变量值,我们使用的是经典的对象.属性名
方式。但有些情况下,我们的属性名可能本身也是变量,怎么办?ognl提供了类似js的语法方式:
例如:${user.name}
可以写作${user['name']}
看下面的案例:
Name: Jack.
Age: 21.
我们获取用户的所有信息,分别展示。当数据量比较多的时候,频繁的写user.
就会非常麻烦。因此,Thymeleaf提供了自定义变量来解决:
Name: Jack.
Age: 21.
-
首先在
h2
上 用th:object="${user}"
获取user的值,并且保存 -
然后,在
h2
内部的任意元素上,可以通过*{属性名}
的方式,来获取user中的属性,这样就省去了大量的user.
前缀了
ognl表达式本身就支持方法调用,例如:
FirstName: first.
LastName: last.
这里我们调用了name(是一个字符串)的split方法。
Thymeleaf内置对象
Thymeleaf中提供了一些内置对象,并且在这些对象中提供了一些方法,方便我们来调用。获取这些对象,需要使用#对象名
来引用。
环境相关对象:
| 对象 | 作用 |
| :-: | :-- |
| #ctx
| 获取Thymeleaf自己的Context对象 |
| #requset
| 如果是web程序,可以获取HttpServletRequest对象 |
| #response
| 如果是web程序,可以获取HttpServletReponse对象 |
| #session
| 如果是web程序,可以获取HttpSession对象 |
| #servletContext
| 如果是web程序,可以获取HttpServletContext对象 |
Thymeleaf提供的全局对象:
| 对象 | 作用 |
| :-: | :-- |
| #dates
| 处理java.util.date的工具对象 |
| #calendars
| 处理java.util.calendar的工具对象 |
| #numbers
| 用来对数字格式化的方法 |
| #strings
| 用来处理字符串的方法 |
| #bools
| 用来判断布尔值的方法 |
| #arrays
| 用来护理数组的方法 |
| #lists
| 用来处理List集合的方法 |
| #sets
| 用来处理set集合的方法 |
| #maps
| 用来处理map集合的方法 |
- 举例
我们在环境变量中添加