我有一个变量 my_variable ,其值为动态 URL,例如 --
http://stackoverflow.com/questions/ask
我想在这个动态 URL 上做一个子字符串来查找最后一个“/”之后的字符串,即在上面提到的 URL 的情况下,我想得到子字符串“ask”
我怎样才能使用 MEL 来做到这一点?
您可以使用 java.lang 包中提供的字符串函数。
#[flowVars['my_variable'].substring(flowVars['my_variable'].lastIndexOf('/'))]
希望这可以帮助。
您可以在 MEL 中使用 JDK 类,实际上这些包是自动导入的(http://www.mulesoft.org/documentation/display/current/Mule+Expression+Language+Reference):
此流程在端口 8081 上接收请求并返回路径的最后一部分:
<flow name="testedbFlow3">
<http:inbound-endpoint host="0.0.0.0" port="8081" />
<expression-transformer expression="#[message.inboundProperties['http.request'].split("^.*/")[1]]"/>
</flow>
您可以在变量上使用基本的 JavaString
方法,例如substring()
和。lastIndexOf()
#[flowVars['my_variable'].substring(flowVars['my_variable'].lastIndexOf('/'))]
哪个更简单