【问题标题】:how to use correctly expressions in choice in mule esb如何在 mule esb 中正确使用选择表达式
【发布时间】:2014-07-01 23:38:30
【问题描述】:

我在有效载荷中有两种变量。我想用简单的选择。如果其中一个为空,则选择其他,例如:

<choice>
  <when expression="#[groovy:airportRequest.getCountryCode() != (null || '')]">

  </when>
  <otherwise>

  </otherwise>
</choice>

我不知道为什么第一个条件总是正确的。即使在 CountryCode 中为 null 或空白空间。

【问题讨论】:

  • 在帖子中提及您的配置文件。这将有助于提供一个好的解决方案。
  • 你用什么Mule版本?
  • != (null || '') 结构对我来说有点不寻常。是否可以先评估 (null || '') (并产生一个中间结果,例如 0),然后根据 0 检查您的国家/地区代码?测试我的想法的方法是拥有它 != '' 然后给它一个空的国家代码。我敢肯定,Mule 不会介意这里有两种表达方式。
  • 您是否尝试使用 or '||' 将此条件语句分成两个单独的条件运算符。
  • 这肯定是错误的语法......

标签: java xml mule esb


【解决方案1】:

它正在工作:

<when expression="#[org.mule.util.StringUtils.isNotEmpty(airportRequest.getCountryCode())]">

还有:

<when expression="airportRequest.getCountryCode() != empty">

如文档所述:

在 MEL 中,关键字 empty 测试一个值是否为空,并返回 boolean true 对于以下任何一项:

null boolean false 空字符串或只有空格的字符串 0 值 数值 空集合 http://www.mulesoft.org/documentation/display/current/Mule+Expression+Language+Examples

【讨论】:

  • 出于好奇,&lt;when expression="airportRequest.countryCode != empty"&gt; 呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-11
  • 2015-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
相关资源
最近更新 更多