Mulesoft — использование компонента выбора

Я разрабатываю приложение с 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>

Конечно, это не работает, потому что, если я правильно понимаю, можно оценить только полезную нагрузку сообщения.

Как я могу выполнить задачу наилучшим образом? Должен ли я каким-то образом добавить все переменные файла свойств в полезную нагрузку?

Благодарю вас!


person user1820620    schedule 30.08.2013    source источник


Ответы (3)


Условное выражение в CHOICE будет работать абсолютно нормально с данными, загружаемыми из файлов свойств.

попробуйте следующую часть, и она должна работать.

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

Надеюсь это поможет.

person user1760178    schedule 30.08.2013

вы также можете определить условие выражения выбора, ссылаясь на файлы свойств, как показано ниже.

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

person Mohan    schedule 11.02.2015

Вам просто не хватило, чтобы заключить ссылку на свойство в одинарную кавычку. Вы также можете использовать метод equals вместо использования оператора ==. Вам просто нужно заключить ссылку на свойство в одинарную кавычку перед сравнением.

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

Объяснение: когда вы заключаете ссылку на свойство в одинарную кавычку, например '${CONTROL_VARIABLE}', она преобразуется в строковый объект, после чего вы можете применить любой метод/оператор, который поддерживает тип String.

Надеюсь это поможет.

person Md. Sadique Ansari    schedule 11.11.2015
comment
Этот ответ c = очень похож на принятый ответ. При ответе на старый вопрос с принятым ответом, пожалуйста, добавьте что-то новое и полезное. - person AdrianHHH; 11.11.2015