式のテンプレート化

式テンプレートを使用すると、リテラルテキストを 1 つ以上の評価ブロックと混合できます。各評価ブロックは、定義可能なプレフィックス文字とサフィックス文字で区切られています。一般的な選択は、次の例に示すように、#{ } を区切り文字として使用することです。

  • 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() メソッドの 2 番目の引数は、ParserContext 型です。ParserContext インターフェースは、式のテンプレート機能をサポートするために式の解析方法に影響を与えるために使用されます。前の例で使用された TemplateParserContext は org.springframework.expression.common パッケージ内にあり、デフォルトでプレフィックスとサフィックスをそれぞれ { と } に構成する ParserContext の実装です。