4 标准表达式语法
我们将暂停开发我们的虚拟杂货店,来学习Thymeleaf标准方言里最重要的部分:Thymeleaf标准表达式语法。
我们已经看过了两种有效的表达属性值的语法:信息和变量表达式。如下:
<p th:utext="#{home.welcome}">Welcome to our grocery store!</p><p>Today is: <span th:text="${today}">13 february 2011</span></p>
然而,还有更多类型的表达式,甚至已经学习过的表达式也还有更多有趣的细节需要学习。首先,让我们看看对标准表达式特性的总结:
- 简单表达式:
- 变量表达式:
${...} - 选择变量表达式:
*{...} - 信息表达式:
#{...} - 链接URL表达式:
@{...} - 分段表达式:
~{...}
- 变量表达式:
- 字面量
- 文本字面量: ‘one text’, ‘Another one!’,…
- 数字字面量:
0,34,3.0,12.3,… - 布尔字面量:
true,false - Null字面量:
null - 字面量标记:
one,sometext,main,…
- 文本运算:
- 字符串拼接:
+ - 字面量置换:
|The name is ${name}|
- 字符串拼接:
- 算术运算:
- 二元运算符:
+,-,*,/,% - 负号(一元运算符): (unary operator):
-
- 二元运算符:
- 布尔运算:
- 二元运算符:
and,or - 布尔非(一元运算符):
!,not
- 二元运算符:
- 比较和相等:
- 比较:
>,<,>=,<=(gt,lt,ge,le) - 相等运算符:
==,!=(eq,ne)
- 比较:
- 条件运算符:
- If-then:
(if) ? (then) - If-then-else:
(if) ? (then) : (else) - Default:
(value) ?: (defaultvalue)
- If-then:
- 特殊标记:
- 无操作:
_
- 无操作:
所有这些特性可以结合或者嵌套:
'User is of type ' + (${user.isAdmin()} ? 'Administrator' : (${user.type} ?: 'Unknown'))
