关于s的错误:如果是struts 2的标签

时间:2012-12-13 08:38:25

标签: java struts2

我对<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(....,但是我必须检查描述是否包含字符串的这一部分,这是否正确?。

谢谢

1 个答案:

答案 0 :(得分:1)

您也可以与==!=进行比较。

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

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

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

.contains("")

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

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

此处有更多详情:http://struts.apache.org/2.3.4/docs/why-wont-the-if-tag-evaluate-a-one-char-string.html