我的问题类似于this question。由于这个问题很老,所以想发布新问题。
我也在下面的
中写下我的表达<property name="to" value="#{ systemProperties['BR']} == '01' ?
${PROPERTY_VALUE_1_FROM_BUNDLE} :
${PROPERTY_VALUE_2_FROM_BUNDLE}" />
当我从我的bean中获取“to”变量的值时。它给了我类似下面的东西
01='01'? value1 : value2
它没有在XML本身中解析我的表达式。
我在这里做错了吗?
答案 0 :(得分:8)
你太早终止了SpEL;它应该是......
<property name="to" value="#{ systemProperties['BR'] == '01' ?
'${PROPERTY_VALUE_1_FROM_BUNDLE}' :
'${PROPERTY_VALUE_2_FROM_BUNDLE}' }" />
请注意,您还需要在占位符周围使用单引号,以便将已解析的值视为文字。
答案 1 :(得分:0)
我已使用以下代码
解决了这个问题ExpressionParser parser = new SpelExpressionParser();
String toMail = parser.parseExpression(to).getValue(String.class);
不得不在XML中做到这一点,但它的响应正如我所希望的那样。现在我在“to”变量中得到了任何一个值。