vínculo tutorial tipo resuelto que para pagina otra navegación navegacion modelo formulario está este español deshabilitado componente casos anidado abrir jsf

jsf - tutorial - no se ha resuelto el tipo de navegación para el componente



Cómo redirigir a la página de índice si el tiempo de espera de la sesión ocurrió en la aplicación jsf (3)

Estoy usando JSF RI 1.1. ¿Cómo redirigir a la página de índice si ocurre el tiempo de espera de la sesión?


Hay dos formas que pueden combinarse:

  1. Utilice el encabezado de actualización <meta> en el elemento HTML <head> en combinación con HttpSession#getMaxInactiveInterval() que devuelve el remanente de segundos que la sesión aún tiene que vivir.

    <meta http-equiv="refresh" content="${pageContext.session.maxInactiveInterval};url=index.jsf">

    Este enfoque redirigirá automáticamente la página a la url determinada cuando expire la sesión.

  2. Captura ViewExpiredException en web.xml :

    <error-page> <exception-type>javax.faces.application.ViewExpiredException</exception-type> <location>/index.jsf</location> </error-page>

    Este enfoque reenviará automáticamente la solicitud a la <location> dada cuando se haya disparado una solicitud POST ( h:commandButton , h:commandLink , etc.) mientras la sesión ha expirado.

Tenga en cuenta que personalmente preferiría una página de advertencia o una alerta de "sesión vencida" para evitar "wtf?" experiencias y así mejorar la experiencia del usuario. Aún más, preferiría disparar un sondeo ajaxical cada minuto cuando el cliente ha mostrado actividad escuchando con un click y click keypress , para que la vida útil de la sesión se posponga más.


JSF2:

<meta http-equiv="refresh" content="#{facesContext.externalContext.sessionMaxInactiveInterval};url=#{request.contextPath}/index.xhtml"/>


Puede usar un Filter para atrapar la excepción particular que indica el tiempo de espera y redirigir desde allí.