2017-08-14 142 views
2

在我的Spring XML配置中,我需要根据另一个属性的值将值设置为特定的属性值。Spring SpEL:如何在XML配置中编写三元操作?

我需要的是这样的:

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

我想myprop要设置的property_b如果property_a等于“测试一”的值,否则myprop必须设置为“anothervalue”。

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

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

回答

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

你必须保证性能的结果占位分辨率仍然literal。所以,这就是为什么我们必须将${...}换成''