代码之家  ›  专栏  ›  技术社区  ›  user1820620

Mulesoft-使用选择组件

  •  3
  • user1820620  · 技术社区  · 11 年前

    我正在和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>
    

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

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

    非常感谢。

    3 回复  |  直到 11 年前
        1
  •  2
  •   user1760178 SiKing    11 年前

    CHOICE中的条件表达式在处理从财产文件加载的数据时将完全正常。

    试试下面的这篇文章,它应该会起作用。

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

    希望这能有所帮助。

        2
  •  1
  •   Mohan    10 年前

    您还可以参考下面的财产文件定义选项表达式条件。

    <when expression="#['${test}' =='1']">

        3
  •  -2
  •   FelixSFD Tushar Panjwani    8 年前

    您只是缺少用单引号将属性引用括起来。您也可以使用equals方法,而不是使用 == 操作人员您只需要在比较之前用单引号将您的房产参考号括起来。

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

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

    希望这能有所帮助。