对于最新稳定版本,请使用Spring Framework 7.0.1spring-doc.cadn.net.cn

表达式模板化

表达式模板允许将文字文本与一个或多个评估块混合使用。 每个评估块都用前缀和后缀字符来区分 定义。一个常见的选择是将 作为分隔符,如下示例 显示:#{ }spring-doc.cadn.net.cn

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()方法)。第二个论证解析表达(parseExpression)方法 是 类型解析上下文.这解析上下文界面被用来影响 表达式被解析以支持表达式模板功能。 的定义模板解析上下文遵循:spring-doc.cadn.net.cn

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
	}
}