表达式模板
表达式模板允许混合使用文字文本和一个或多个计算块。每个计算块都用您可以定义的前缀和后缀字符分隔。一个常见的选择是使用#{ }
作为分隔符,如下例所示
-
Java
-
Kotlin
String randomPhrase = parser.parseExpression(
"random number is #{T(java.lang.Math).random()}",
new TemplateParserContext()).getValue(String.class);
// evaluates to "random number is 0.7038186818312008"
val randomPhrase = parser.parseExpression(
"random number is #{T(java.lang.Math).random()}",
TemplateParserContext()).getValue(String::class.java)
// evaluates to "random number is 0.7038186818312008"
该字符串通过将文字文本'random number is '
与#{ }
分隔符内表达式的计算结果(在本例中,调用random()
方法的结果)连接起来进行计算。parseExpression()
方法的第二个参数是ParserContext
类型。ParserContext
接口用于影响表达式的解析方式,以便支持表达式模板功能。前面示例中使用的TemplateParserContext
位于org.springframework.expression.common
包中,是ParserContext
的一个实现,它默认将前缀和后缀分别配置为#{
和}
。