2

我想将流变量与文字字符串进行比较,并忽略变量的大小写。例如

...
<when expression="#[StringUtils.upperCase(flowVars['officeCode']) == 'REGION1']">
....

产生的错误是 [Error: could not access: StringUtils; 在课堂上:null] [Near : {... Unknown ....}]

我也试过

<when expression="#[regex('[a-zA-Z0-9]+',flowVars['officeCode'],Pattern.CASE_INSENSITIVE) == 'REGION1']">

对于正则表达式比较,我收到错误“文本不是字符串”

非常感谢任何帮助。

4

1 回答 1

5

对于第一个,您需要完全限定 StringUtils 类,即

#[org.apache.commons.lang3.StringUtils.upperCase(.....)]

或者您可以全局导入该类,这样您就可以在没有完整限定符的情况下使用:

<configuration>
 <expression-language>
 <import class=”org.apache.commons.lang3.StringUtils” />
 </expression-language>
</configuration>

或者,您可以在 String 上使用 equalsIgnoreCase:

<when expression="#[flowVars['officeCode'].equalsIgnoreCase('REGION1')]">

只要 #[flowVars['officeCode'] 实际上是一个字符串

于 2013-10-02T14:48:26.483 回答