Configuración de la desconexión de usuarios con ICEFaces

0
23689

Configuración de la desconexión de usuarios con ICEFaces

Índice de contenidos.

1. Introducción

Una tarea siempre importante en el mundo de la programación es la manera en que los programas deben informar al usuario de que se
ha producido un error de manera que el usuario pueda reaccionar ante el mismo.

Uno de los aspectos más comunes en las aplicaciones web (dejando de lado el famoso error 404) es cuando al usuario se le caduca
la sesión principalmente por inactividad sobre la aplicación web.

Todo el que haya trabajado con ICEFaces le habrá salido la ventana que informa de esto mismo, suele salir cuando por ejemplo durante
el desarrollo de la aplicación paramos el servidor web. En este tutorial veremos cómo podemos traducir el mensaje que informa
que se ha perdido la sesión o incluso hacer desaparecer la ventana si no nos resulta útil o no encaja en las especificaciones
de la aplicación.

2. Entorno

El tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil Acer Aspire 5920G (Core Duo T8300 2.4GHz, 3GB RAM, 320 GB HD).
  • Sistema operativo: Windows Vista
  • Framework wuija 1.6
  • ICEFaces 1.7.2

3. Traducción de la ventana «User Session Expired»…

A partir de la versión 1.7.2 de ICEFaces podemos traducir los textos que aparecen en las ventanas que muestra ICEFaces
cuando por ejemplo se produce la pérdida de sesión del usuario, por perdida de la conexión o por error interno del servidor.

Para hacer las pruebas he creado un proyecto de maven, con una página que simula la entrada de un usuario en el sistema, al
cual le pedimos que introduzca su nombre y que mostraremos la pérdida de su sesión de distintas maneras.

Si quieres descargarte el código del ejemplo, pulsa el siguiente enlace

Arrancamos el servidor y accedemos a la aplicación.

Se muestra un pequeño formulario donde se nos pide introducir el nombre. No es más que un simple ejemplo, no es el objetivo
del tutorial pero servirá para simular una aplicación web real con ICEFaces.

Para forzar que salga la ventana de pérdida de sesión del usuario bastará con reiniciar el servidor web y posteriormente
pulsar el botón ‘Aceptar’.

El framework ICEFaces compone una ventana modal que nos obliga a pulsar el botón ‘Reload’ para forzar una nueva petición y
que el servidor nos asigne una nueva sesión para seguir utilizando la aplicación. Si queremos personalizar este mensaje bastará
con crear un fichero properties llamado bridge-messages.properties y dejarlo junto al messages.properties donde se alojan los
textos de la aplicación JSF.

Los mensajes por defecto son los siguientes:

session-expired = User Session Expired
connection-lost = Network Connection Interrupted
server-error = Server Internal Error
description = To reconnect click the Reload button on the browser or click the button below
button-text = Reload

Configuramos los mensajes a nuestro gusto y obtenemos el resultado esperado, la ventana traducida.

session-expired = Mensaje del servidor
connection-lost = Se ha perdido la conexión.
server-error = Error interno del servidor.
description = Su sesión ha caducado. Pulse el botón recargar.
button-text = Recargar

4. Etiqueta ice:outputConnectionStatus

Aunque esta ventanita queda bien y es intuitiva puede que no nos cuadre en nuestra aplicación y decidamos que no queremos
que aparezca. Para ello está el componente outputConnectionStatus que sirve para configurar los mensajes de conexión activa o
conexión expirada por ejemplo. Esta etiqueta también nos permitirá decirle a ICEFaces que no saque la ventana
modal de información o bien combinar ambas formas de mostrar el mensaje al usuario.

Si por ejemplo queremos indicarle al usuario que su sesión ha caducado y no nos convence la ventana anterior, utilizamos la
etiqueta outputConnectionStatus como sigue:


El resultado es el siguiente:

De esta forma el usuario queda informado de que se le ha caducado la sesión. Si queremos combinar ambas formas de informar
al usuario pondremos la propiedad showPopupOnDisconnect a true


El resultado sería el siguiente:

Otro aspecto bastante útil de este componente es utilizarlo para mostrarle al usuario un mensaje o una imagen (normalmente
un gif animado de ‘loading’) para mostrar que se está realizando la petición y que deberá esperar. Existen varias imagenes
predefinidas pero se puede utilizar una imagen propia.

Para que aparezcan correctamente los estilos e imágenes no olvidar incluir el css del tema de ICEFaces. Yo en este caso
voy a incluir el rime.css


La imagen que aparece mientras se está procesando la petición es útil cuando la respuesta del servidor tarda mucho y se
quiere informar al usuario a que espere para que no tenga tentaciones de volver a darle al botón ‘Aceptar’ o algo parecido.

Se puede configurar dependiendo del tema de estilos escogido, hay otros tres disponibles.

5. Conclusiones.

Como véis este framework cada vez es más maduro y permite una mayor personalización de los componentes gráficos. Espero
que este tutorial te haya servido de ayuda.

Un saludo.

Juan

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad