2012-09-04 4 views
2

세션 변수가 null이거나 비어 있음을 확인하려면 어떻게해야합니까? 나를 위해 작동하지 않습니다.뮬 3.2. 흐름에서 빈 세션 변수를 평가하는 방법?

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

나는 또한 시도! = ''와! = 당신은 잘못된 끝내 표현을 사용하는

답변

2

줍니다. 그것은해야한다 : 당신은 또한 헤더 평가자와 속성에 액세스 할 수 있습니다하지만 난 당신이 뮬 3.3을 사용하는 경우는 null 또는

+0

Daniel에게 도움을 주셔서 감사하지만 문제는 해결되지 않습니다. 값이 빈 문자열이면 해당 값을 catch하지 않습니다. – Kawika

+0

내 대답에 빈 문자열 조건이 추가되었으므로 작동합니다. – Daniel

4

비어 있는지 확인하기 위해 평가할 수 있는지 확실하지 않습니다

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

. x, Groovy보다 MEL을 더 잘 사용하십시오.

<when expression="#[org.mule.util.StringUtils.isNotEmpty(sessionVars.countryCode)]"> 
+2

변수가 비어 있지 않지만 실제로 설정되지 않은 경우 "." 표기법은 예외를 던집니다. 설정되지 않은 변수도 처리하려면

+1

True : 변수가 발생할 수있는 위험이있는 경우 sessionVars [ 'countryCode']'는 길입니다. –

관련 문제