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
varMsgy 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
varMsges 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.