表示式模板
表示式模板允許將字面文字與一個或多個求值塊混合使用。每個求值塊使用您可以定義的字首和字尾字元進行分隔。一個常見的選擇是使用 #{ }
作為分隔符,如下例所示:
-
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
的一個實現,預設將字首配置為 #{
,字尾配置為 }
。