Curso de Struts 2 | Hacer una comparación 1

Curso de Struts 2
Hacer una comparación

Curso de Struts 2 | Hacer una comparación 2

En esta lección veremos cómo realizar comparaciones en Struts 2 utilizando la etiqueta <s:if>, y los posibles problemas que pueden surgir al trabajar con tipos de datos específicos, como letras (chars).

Ejemplo básico de comparación

<s:set var="varMsg" value="%{'msg'}"/>
<s:property value="varMsg"/>
<s:if test="%{varMsg=='msg'}">Comparacion con éxito</s:if>

Explicación

  1. <s:set>:
    • Crea una variable varMsg y le asigna el valor 'msg'.
  2. <s:property>:
    • Muestra el valor de la variable varMsg.
  3. <s:if>:
    • Evalúa si varMsg es igual a 'msg'. Si la condición es verdadera, el texto «Comparación con éxito» se muestra.

Problemas con comparaciones de letras

Cuando se comparan letras (tipo char) en lugar de cadenas (String), debemos asegurarnos de que el carácter se trate como una cadena. Para ello, es necesario escapar las comillas dobles alrededor de la letra.

<s:if test="%{usuario.tipoUsuario==\"A\"}" > 
Éxito
</s:if>

Explicación

  1. Problema original:
    Si no se escapan las comillas dobles, Struts 2 puede interpretar la comparación como un carácter (char) en lugar de una cadena (String), lo que provoca un error.
  2. Solución:
    • Usamos \\\" para escapar las comillas dobles y asegurarnos de que Struts 2 trate la letra como una cadena.

Consideraciones

  • Buena práctica:
    Siempre utiliza comillas dobles escapadas para garantizar que Struts 2 maneje las comparaciones correctamente, especialmente si estás trabajando con valores que pueden ser interpretados como caracteres (char).
  • Depuración:
    Si una condición no se evalúa correctamente, verifica los tipos de datos involucrados y asegúrate de usar la sintaxis correcta en el atributo test.