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

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


产生的错误是[错误:无法访问:StringUtils;在课堂上:null]
[附近:{...未知....}]

我也尝试过

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


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

任何帮助,不胜感激。

最佳答案

对于第一个,您需要完全限定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']实际上是一个字符串

10-08 15:51