最新の安定バージョンについては、Spring Framework 6.2.6 を使用してください!

式テンプレート

式テンプレートを使用すると、リテラルテキストを 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 の定義は次のとおりです。

  • Java

  • Kotlin

public class TemplateParserContext implements ParserContext {

	public String getExpressionPrefix() {
		return "#{";
	}

	public String getExpressionSuffix() {
		return "}";
	}

	public boolean isTemplate() {
		return true;
	}
}
class TemplateParserContext : ParserContext {

	override fun getExpressionPrefix(): String {
		return "#{"
	}

	override fun getExpressionSuffix(): String {
		return "}"
	}

	override fun isTemplate(): Boolean {
		return true
	}
}