Mule MEL在流变量上做子串

时间:2014-05-11 16:59:52

标签: mule mule-el

我有一个变量my_variable,其值为动态网址,如 -

http://stackoverflow.com/questions/ask

我想在这个动态网址上做一个子字符串,找到最后一个字符串" /"即如果上面提到的URL,我想得到子串"问"

我如何使用MEL来做到这一点?

4 个答案:

答案 0 :(得分:4)

您可以使用java.lang包中提供的字符串函数。

#[flowVars['my_variable'].substring(flowVars['my_variable'].lastIndexOf('/'))]

希望这有帮助。

答案 1 :(得分:2)

您可以在MEL中使用JDK类,实际上这些包是自动导入的(http://www.mulesoft.org/documentation/display/current/Mule+Expression+Language+Reference):

  • 的java.lang。*
  • java.io。*
  • java.net。*
  • java.util中。*
  • java.math.BigDecimal中
  • java.math.BigInteger中
  • 的javax.activation.DataHandler
  • javax.activation.MimeType
  • java.util.regex.Pattern中
  • org.mule.api.transformer.DataType
  • org.mule.transformer.types.DataTypeFactory

此流程在端口8081上接收请求并返回路径的最后部分:

<flow name="testedbFlow3">
    <http:inbound-endpoint host="0.0.0.0" port="8081" />
    <expression-transformer expression="#[message.inboundProperties['http.request'].split(&quot;^.*/&quot;)[1]]"/>
</flow>

答案 2 :(得分:1)

您可以对变量使用基本的Java String方法,例如substring()lastIndexOf()

答案 3 :(得分:0)

#[flowVars['my_variable'].substring(flowVars['my_variable'].lastIndexOf('/'))]

哪个更简单