Java Struts 2<;s:if>;contains()方法不适用于包含多个单词的字符串

Java Struts 2<;s:if>;contains()方法不适用于包含多个单词的字符串,java,jsp,if-statement,struts2,contains,Java,Jsp,If Statement,Struts2,Contains,如果此人的帐户过期,我有以下代码来打印消息。(此实例中的警报=“您的帐户已过期”) 代码不起作用。但是如果我把空格和第二个字拉出来,像这样: <s:if test="%{#alert.contains('past')}"> 代码似乎工作正常,消息被打印出来。你能用 <s:if test="%{#alert.indexOf('past due')>0}"> 测试问题是否与contains()方法的CharSequence参数有关(但除了一个字符串外,该

如果此人的帐户过期,我有以下代码来打印消息。(此实例中的警报=“您的帐户已过期”)


代码不起作用。但是如果我把空格和第二个字拉出来,像这样:

<s:if test="%{#alert.contains('past')}">

代码似乎工作正常,消息被打印出来。

你能用

<s:if test="%{#alert.indexOf('past due')>0}">

测试问题是否与contains()方法的CharSequence参数有关(但除了一个字符串外,该参数应该可以工作)


请注意,如果
警报
字符串来自操作的getter,则不需要
#
符号,因为它被推到堆栈顶部

代码工作正常,但要获得子字符串的匹配,最好使用
matches()
方法

<s:if test="#alert.matches('.*past due.*')">  

#警报是一个字符串对象。最肯定的是struts2。
<s:if test="#alert.matches('.*past due.*')">