Error en la comparación de String con la librería de tags de Struts2

17 diciembre 2009 at 11:12 am 5 comentarios

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.

Anuncios

Entry filed under: Java. Tags: , , .

Manifiesto “En defensa de los derechos fundamentales en Internet” Alerta de contenido no seguro en Internet Explorer

5 comentarios Add your own

  • 1. Chise  |  7 enero 2010 en 9:53 pm

    Gracias!!! me ha servido mucho! no entendía porque no me funcionaba y me estaba volviendo loca! 😀

  • 2. Miguel  |  8 enero 2010 en 12:45 am

    Gracias a ti por tu comentario Chise.

    Se agradece saber que es útil a alguien.

  • 3. jmunin  |  13 abril 2011 en 7:25 pm

    ¿No te falta una comilla simple al final del penúltimo ejemplo?.
    Tienes:

    Mostrar texto

    y quedaría como:

    Mostrar texto

  • 4. Miguel  |  13 abril 2011 en 11:01 pm

    Tienes toda la razón. Edito la entrada.

    ¡¡Muchas gracias!!

  • 5. Alberto  |  4 julio 2012 en 9:01 am

    Muchas gracias!!
    Me estaba volviendo loco y no sabía porque no lo pillaba.
    Ha funcionado a la primera 🙂

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Mi perfil

View Miguel Orbegozo's profile on LinkedIn

Feedjit

Feeds

Otros…

BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog

Bitacoras.com

Add to Technorati Favorites


A %d blogueros les gusta esto: