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

三元运算符(如果-那么-否则)

你可以使用三元运算符在表达式中执行 if-then-else 条件逻辑。以下列表显示了一个最小示例:spring-doc.cadn.net.cn

String falseString = parser.parseExpression(
		"false ? 'trueExp' : 'falseExp'").getValue(String.class);
val falseString = parser.parseExpression(
		"false ? 'trueExp' : 'falseExp'").getValue(String::class.java)

在这种情况下,布尔值 false 会导致返回字符串值 'falseExp'。接下来是一个更实际的例子:spring-doc.cadn.net.cn

parser.parseExpression("name").setValue(societyContext, "IEEE");
societyContext.setVariable("queryName", "Nikola Tesla");

expression = "isMember(#queryName)? #queryName + ' is a member of the ' " +
		"+ Name + ' Society' : #queryName + ' is not a member of the ' + Name + ' Society'";

String queryResultString = parser.parseExpression(expression)
		.getValue(societyContext, String.class);
// queryResultString = "Nikola Tesla is a member of the IEEE Society"
parser.parseExpression("name").setValue(societyContext, "IEEE")
societyContext.setVariable("queryName", "Nikola Tesla")

expression = "isMember(#queryName)? #queryName + ' is a member of the ' " + "+ Name + ' Society' : #queryName + ' is not a member of the ' + Name + ' Society'"

val queryResultString = parser.parseExpression(expression)
		.getValue(societyContext, String::class.java)
// queryResultString = "Nikola Tesla is a member of the IEEE Society"

请参阅关于Elvis运算符的下一节,了解三元运算符的更简短语法。spring-doc.cadn.net.cn