2

如何在此 CHOICE 中检查我的会话变量是否为空或为空,它对我不起作用。

    <processor-chain doc:name="Processor Chain">
        <choice> 
            <when evaluator="groovy" expression="#[header:session:countryCode] != ">                    
                <logger message="Valid Country Id" level="INFO" doc:name="Logger"/>                 
            </when>            
            <otherwise>
                <logger message="Invalid Country Id" level="INFO" doc:name="Logger"/>                   
            </otherwise>
        </choice>           
    </processor-chain>

我也试过 != '' 和 != null

4

2 回答 2

4

如果您使用的是 Mule 3.3.x,最好使用 MEL 而不是 Groovy:

<when expression="#[org.mule.util.StringUtils.isNotEmpty(sessionVars.countryCode)]">
于 2012-09-04T19:53:59.253 回答
2

您正在使用无效的 groovy 表达式。它应该是:

    ...
    <when expression="message.getProperty('countryCode',org.mule.api.transport.PropertyScope.SESSION)!=null 
                      || message.getProperty('countryCode',org.mule.api.transport.PropertyScope.SESSION)!=''"
    evaluator="groovy">
    ...

您也可以使用 Header evaluator 访问属性,但我不确定您是否可以评估以找出它是 null 还是空

于 2012-09-04T13:08:18.807 回答