Spring SpEL:如何在 XML 配置中编写三元运算?

Spring SpEL: how to write ternary operation in XML config?

在我的 Spring XML 配置中,我需要根据另一个 属性.[=20= 的值将一个值设置为特定的 属性 值]

我需要这样的东西:

<bean id="myid" class="myclass">
   <property name="myprop"
            value="#{${property_a} == 'test-a' ? ${property_b} : 'anothervalue'}"
   />

如果property_a等于"test-a",我希望myprop设置为property_b的值,否则myprop必须设置为"anothervalue".

property_aproperty_b 都在我的 config.properties 文件中定义。

是否可以在 XML SpEL 中编写这样的语句?

<property name="myprop"
        value="#{'${property_a}' == 'test-a' ? '${property_b}' : 'anothervalue' }" />

您必须确保属性占位符解析的结果仍然是literal。所以,这就是为什么我们必须将 ${...} 包装到 ''.