此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Framework 6.2.0spring-doc.cadn.net.cn

文本表达式

SPEL 支持以下类型的 Literals 表达式。spring-doc.cadn.net.cn

字符串

字符串可以用单引号 () 或双引号分隔 ().在 single 括起来的字符串文本中包含单引号 引号,使用两个相邻的单引号字符。同样,到 在用双引号括起来的字符串文本中包含双引号 标记,请使用两个相邻的双引号字符。'"spring-doc.cadn.net.cn

数字支持使用负号、指数表示法和小数点。spring-doc.cadn.net.cn

布尔

truefalsespring-doc.cadn.net.cn

nullspring-doc.cadn.net.cn

由于 Spring 表达式语言的设计和实现,文本数字 始终在内部存储为正数。spring-doc.cadn.net.cn

例如-2在内部存储为 positive2然后被否定,而 计算表达式(通过计算0 - 2).spring-doc.cadn.net.cn

这意味着不可能表示等于 Java 中该类型数字的 minimum 值。例如,支持的最小值 对于int在 Java 中是Integer.MIN_VALUE其值为-2147483648.然而 如果包含-2147483648在 SPEL 表达式中,将引发异常以通知 你那个值2147483648不能解析为int(因为它超过了 的值Integer.MAX_VALUE哪个是2147483647).spring-doc.cadn.net.cn

如果需要对 SPEL 中特定类型的数字使用最小值 表达式,您可以引用MIN_VALUEconstant 的 类型(例如Integer.MIN_VALUE,Long.MIN_VALUE等)或计算最小值 价值。例如,要使用最小整数值:spring-doc.cadn.net.cn

下面的清单显示了 Literals 的简单用法。通常,它们不用于 像这样孤立,而是作为更复杂的表达式的一部分——例如, 在逻辑比较运算符的一侧使用文本,或作为 方法。spring-doc.cadn.net.cn

ExpressionParser parser = new SpelExpressionParser();

// evaluates to "Hello World"
String helloWorld = (String) parser.parseExpression("'Hello World'").getValue();

// evaluates to "Tony's Pizza"
String pizzaParlor = (String) parser.parseExpression("'Tony''s Pizza'").getValue();

double avogadrosNumber = (Double) parser.parseExpression("6.0221415E+23").getValue();

// evaluates to 2147483647
int maxValue = (Integer) parser.parseExpression("0x7FFFFFFF").getValue();

boolean trueValue = (Boolean) parser.parseExpression("true").getValue();

Object nullValue = parser.parseExpression("null").getValue();
val parser = SpelExpressionParser()

// evaluates to "Hello World"
val helloWorld = parser.parseExpression("'Hello World'").value as String

// evaluates to "Tony's Pizza"
val pizzaParlor = parser.parseExpression("'Tony''s Pizza'").value as String

val avogadrosNumber = parser.parseExpression("6.0221415E+23").value as Double

// evaluates to 2147483647
val maxValue = parser.parseExpression("0x7FFFFFFF").value as Int

val trueValue = parser.parseExpression("true").value as Boolean

val nullValue = parser.parseExpression("null").value