3

我的问题类似于这个问题。由于那个问题很老,所以想发布新问题。

我也在下面写我的表达

<property name="to" value="#{ systemProperties['BR']} == '01' ? 
    ${PROPERTY_VALUE_1_FROM_BUNDLE} : 
    ${PROPERTY_VALUE_2_FROM_BUNDLE}" />

当我从我的 bean 中获取“to”变量的值时。它给了我类似下面的东西

01='01'? value1 : value2

它没有在 XML 本身中解析我的表达式。

我在这里做错什么了吗?

4

2 回答 2

8

您过早终止 SpEL;它应该是...

<property name="to" value="#{ systemProperties['BR'] == '01' ? 
    '${PROPERTY_VALUE_1_FROM_BUNDLE}' : 
    '${PROPERTY_VALUE_2_FROM_BUNDLE}' }" />

请注意,您还需要在占位符周围加上单引号,以便将解析的值视为文字。

于 2013-06-10T13:01:35.167 回答
0

我已经使用下面的代码解决了它

ExpressionParser parser = new SpelExpressionParser();
String toMail = parser.parseExpression(to).getValue(String.class);

不得不在这里和那里在 XML 中做很少的事情,但它的响应是我想要的。现在我在我的“to”变量中得到了任何一个值。

于 2013-06-10T11:54:06.003 回答