Curso de Struts 2
Hacer una comparación
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
<s:set>
:- Crea una variable
varMsg
y le asigna el valor'msg'
.
- Crea una variable
<s:property>
:- Muestra el valor de la variable
varMsg
.
- Muestra el valor de la variable
<s:if>
:- Evalúa si
varMsg
es igual a'msg'
. Si la condición es verdadera, el texto «Comparación con éxito» se muestra.
- Evalúa si
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
- 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. - Solución:
- Usamos
\\\"
para escapar las comillas dobles y asegurarnos de que Struts 2 trate la letra como una cadena.
- Usamos
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 atributotest
.