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

时间:2017-08-14 18:13:11

标签: spring spring-el

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

我需要这样的东西:

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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