字面表达式
SpEL支持以下类型的字面表达式。
- 字符串
-
字符串可以用单引号(
'
)或双引号("
)括起来。要在单引号括起的字符串字面值中包含单引号,请使用两个相邻的单引号字符。类似地,要在双引号括起的字符串字面值中包含双引号,请使用两个相邻的双引号字符。 - 数字
-
数字支持使用负号、指数表示法和小数点。
-
整数:
int
或long
-
十六进制:
int
或long
-
实数:
float
或double
-
默认情况下,实数使用
Double.parseDouble()
进行解析。
-
-
- 布尔值
-
true
或false
- 空值
-
null
由于Spring表达式语言的设计和实现,字面数字始终以正数形式存储在内部。 例如, 这意味着无法表示等于Java中该类型数字的最小值的负字面数字。例如,在Java中, 如果需要在SpEL表达式中使用特定类型数字的最小值,可以引用相应包装类型的
|
以下清单显示了字面值的简单用法。通常,它们不会像这样单独使用,而是作为更复杂表达式的一部分,例如,在逻辑比较运算符的一侧使用字面值,或作为方法的参数。
-
Java
-
Kotlin
ExpressionParser parser = new SpelExpressionParser();
// 评估为 "Hello World"
String helloWorld = (String) parser.parseExpression("'Hello World'").getValue();
// 评估为 "Tony's Pizza"
String pizzaParlor = (String) parser.parseExpression("'Tony''s Pizza'").getValue();
double avogadrosNumber = (Double) parser.parseExpression("6.0221415E+23").getValue();
// 评估为 2147483647
int maxValue = (Integer) parser.parseExpression("0x7FFFFFFF").getValue();
boolean trueValue = (Boolean) parser.parseExpression("true").getValue();
Object nullValue = parser.parseExpression("null").getValue();
val parser = SpelExpressionParser()
// 评估为 "Hello World"
val helloWorld = parser.parseExpression("'Hello World'").value as String
// 评估为 "Tony's Pizza"
val pizzaParlor = parser.parseExpression("'Tony''s Pizza'").value as String
val avogadrosNumber = parser.parseExpression("6.0221415E+23").value as Double
// 评估为 2147483647
val maxValue = parser.parseExpression("0x7FFFFFFF").value as Int
val trueValue = parser.parseExpression("true").value as Boolean
val nullValue = parser.parseExpression("null").value