我正在用mule studio开发一个应用程序, 我需要使用“选择”组件,但我想评估有效负载中包含的消息属性,而不是包含在属性文件中的变量,如:
<choice doc:name="Choice">
<when expression="${CONTROL_VARIABLE}.equals("S")">
<set-variable variableName="URL_ADDRESS" value="${URL_PREPATH_VALUE}/[#payload.URL]" doc:name="Variable"/>
</when>
<otherwise>
<set-variable variableName="URL_ADDRESS" value="[#payload.URL]" doc:name="Variable"/>
</otherwise>
</choice>
当然它不起作用,因为如果我理解正确,只能评估消息有效负载。
如何以最佳方式完成任务? 我是否要以某种方式在有效负载中添加所有属性文件变量?
谢谢!
答案 0 :(得分:2)
对于从属性文件加载的数据,CHOICE中的条件表达式将完全正常工作。
尝试以下部分,它应该有效。
<when expression="'${CONTROL_VARIABLE}' == 'S'">
希望这有帮助。
答案 1 :(得分:0)
您还可以参考属性文件定义选择表达式条件,如下所示。
<when expression="#['${test}' =='1']">
答案 2 :(得分:-2)
您只是缺少用单引号括起您的属性引用。您也可以使用equals方法而不是==
运算符。在比较之前,您只需要用单引号将您的属性引用括起来。
<*when expression="'${CONTROL_VARIABLE}'.equals('S')"*>
说明:当您使用单引号括起属性引用时,例如&#39; $ {CONTROL_VARIABLE}&#39;在此之后,它可以转换为字符串对象,您可以应用任何支持String类型的方法/运算符。
希望这有帮助。