语法:
标准表达式语法
- 简单表达:
- 变量表达式:
${...} - 选择变量表达式:
*{...} - 消息表达式:
#{...} - 链接网址表达式:
@{...}
- 变量表达式:
- 字面
- 文本文字:
'one text','Another one!',... - 号码文字:
0,34,3.0,12.3,... - 布尔文字:
true,false - 空字面:
null - 文字标记:
one,sometext,main,...
- 文本文字:
- 文字操作:
- 字符串连接:
+ - 文字替换:
|The name is ${name}|
- 字符串连接:
- 算术运算:
- 二元运算符:
+,-,*,/,% - 减号(一元运算符):
-
- 二元运算符:
- 布尔运算:
- 二元运算符:
and,or - 布尔否定(一元运算符):
!,not
- 二元运算符:
- 比较和等价:
- 比较:
>,<,>=,<=(gt,lt,ge,le) - 等价表达式:
==,!=(eq,ne)
- 比较:
- 有条件的语句:
- IF-THEN:
(if) ? (then) - IF-THEN-ELSE:
(if) ? (then) : (else) - DEFAULT:
(value) ?: (defaultvalue)
- IF-THEN:
所有这些功能都可以组合和嵌套。
表达式基本对象
在上下文变量上评估OGNL表达式时,某些对象可用于表达式以获得更高的灵活性。将从#符号开始引用这些对象(根据OGNL标准):
#ctx:上下文对象。#vars:上下文变量。#locale:上下文区域设置。#httpServletRequest:(仅限Web Contexts)HttpServletRequest对象。#httpSession:(仅限Web Contexts)HttpSession对象。
Expression Utility对象
除了这些基本对象,Thymeleaf还将为我们提供一组实用程序对象,帮助我们在表达式中执行常见任务。
#dates:java.util.Date对象的实用方法:格式化,组件提取等。#calendars:类似于#dates,但java.util.Calendar对象。#numbers:用于格式化数字对象的实用方法。#strings:String对象的实用方法:contains,startsWith,prepending / appending等。#objects:一般的对象的实用方法。#bools:布尔评估的实用方法。#arrays:数组的实用方法。#lists:列表的实用方法。#sets:集合的实用方法。#maps:地图的实用方法。#aggregates:用于在数组或集合上创建聚合的实用程序方法。#messages:用于在变量表达式中获取外部化消息的实用程序方法,与使用#{...}语法获取它们的方式相同。#ids:用于处理可能重复的id属性的实用程序方法(例如,作为迭代的结果)
此外,Thymeleaf还提供了内联、遍历()、设定属性值等相关语法。