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_a
和 property_b
都在我的 config.properties
文件中定义。
是否可以在 XML SpEL 中编写这样的语句?
<property name="myprop"
value="#{'${property_a}' == 'test-a' ? '${property_b}' : 'anothervalue' }" />
您必须确保属性占位符解析的结果仍然是literal
。所以,这就是为什么我们必须将 ${...}
包装到 ''
.
在我的 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_a
和 property_b
都在我的 config.properties
文件中定义。
是否可以在 XML SpEL 中编写这样的语句?
<property name="myprop"
value="#{'${property_a}' == 'test-a' ? '${property_b}' : 'anothervalue' }" />
您必须确保属性占位符解析的结果仍然是literal
。所以,这就是为什么我们必须将 ${...}
包装到 ''
.