Mulesoft - 使用选择组件

时间:2013-08-30 12:35:04

标签: mule mule-studio mule-el

我正在用mule studio开发一个应用程序, 我需要使用“选择”组件,但我想评估有效负载中包含的消息属性,而不是包含在属性文件中的变量,如:

<choice doc:name="Choice">
                <when expression="${CONTROL_VARIABLE}.equals(&quot;S&quot;)">
                    <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>

当然它不起作用,因为如果我理解正确,只能评估消息有效负载。

如何以最佳方式完成任务? 我是否要以某种方式在有效负载中添加所有属性文件变量?

谢谢!

3 个答案:

答案 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类型的方法/运算符。

希望这有帮助。