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