3

<s:if>我对标签有下一个疑问。我有一个变量,它是一个字符串,我必须使用<s:if>标签来比较这个字符串的一部分。我可以做到吗?我的意思是举个例子:

<s:iterator value="datosPedido" status="itStatus">
          <s:set name="datosPedidoServV" value="%{descripcion[#itStatus.index]}" />
            <s:if test="%{descripcion!='Servidor Virtual ('}">
          Hola
         </s:if>
 .
 .

这个描述比Servidor Virtual(....,但是我要检查描述是否有这部分字符串,这样对吗?

谢谢

4

1 回答 1

2

您也可以比较 with==和 with !=

您也可以与 Java 方法进行比较,例如使用.equals("")或 。.equalsIgnoreCase("")

在您的情况下,您正在检查一个字符串是否包含另一个字符串,那么您应该使用.indexOf("")

<s:if test="descripcion.indexOf('Servidor Virtual (') != -1">

或者.contains("")

<s:if test="descripcion.contains('Servidor Virtual (')">

请注意,使用 ONE 字符长字符串时有一个限制。在这种情况下,您必须使用双引号而不是单引号,否则 OGNL 会认为它是一个字符,并会尝试将一个字符与一个字符串进行比较,失败。

更多细节在这里:http ://struts.apache.org/2.3.4/docs/why-wont-the-if​​-tag-evaluate-a-one-char-string.html

于 2012-12-13T09:11:48.820 回答