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