Posts tagged ‘Struts2’
Error en la comparación de String con la librería de tags de Struts2
Os voy a comentar un pequeño error que nos puede descolocar un poco cuando tratamos de comparar cadenas mediante la librería de etiquetas de Struts2 en nuestras páginas JSP.
Si hacemos una comparación con Strings al estilo de:
<s:if test="propiedad == 'SI'"> <div>Mostrar texto</div> </s:if>
obtendremos el resultado esperado (mostrará el texto si nuestra propiedad vale «SI»), pero si la comparación es:
<s:if test="propiedad == 'S'"> <div>Mostrar texto</div> </s:if>
veremos que aunque nuestra propiedad valga «S» no aparece el texto. Es decir, que cuando hacemos comparaciones de Strings de un sólo carácter nos falla. La responsable es la librería OGNL que evalúa las expresiones ya que al encontrar se un sólo carácter lo toma como un tipo Char y no un String.
Para solucionarlo nos basta cambiar las comillas:
<s:if test='propiedad == "S"'> <div>Mostrar texto</div> </s:if>
o bien escapar las comillas dobles:
<s:if test="propiedad == \"S\""> <div>Mostrar texto</div> </s:if>
Espero que le pueda servir a alguien.
Comentarios recientes