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