对于最新的稳定版本,请使用 Spring Framework 6.2.4! |
表达式模板
表达式模板允许将文本文本与一个或多个评估块混合。
每个评估块都用前缀和后缀字符分隔,您可以
定义。常见的选择是用作分隔符,如下例所示
显示:#{ }
-
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
interface 用于影响
解析表达式以支持表达式模板化功能。
的定义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
}
}