Mulesoft-使用选择组件

Mulesoft-使用选择组件,mule,mule-studio,mule-el,Mule,Mule Studio,Mule El,我正在用mule studio开发一个应用程序, 我需要使用“Choice”组件,但我想计算的不是有效负载中包含的消息属性,而是属性文件中包含的变量,如下所示: <choice doc:name="Choice"> <when expression="${CONTROL_VARIABLE}.equals(&quot;S&quot;)"> <set-variable variabl

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

<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>

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

我怎样才能以最好的方式完成任务? 我必须以某种方式在有效负载中添加所有属性文件变量吗


谢谢大家!

选项中的条件表达式对于从属性文件加载的数据将非常有效

试试下面这一段,它应该会起作用

<when expression="'${CONTROL_VARIABLE}' == 'S'">


希望这能有所帮助。

您也可以定义引用属性文件的选项表达式条件,如下所示


您刚才缺少用单引号括起属性引用。您也可以使用equals方法,而不是使用
=
运算符。在比较之前,您只需要用单引号括起您的属性引用

<*when expression="'${CONTROL_VARIABLE}'.equals('S')"*>

说明:当您使用诸如“${CONTROL_VARIABLE}”这样的单引号将属性引用括起来时,它将被转换为字符串对象,然后您可以应用任何支持字符串类型的方法/运算符


希望这有帮助。

这个答案与公认的答案非常相似。当用一个被接受的答案回答一个老问题时,请添加一些新的和有用的内容。