Considérez le scénario suivant. Je clique sur le bouton d'envoi d'un formulaire JSF, une fois la session expirée (expirée). Le navigateur affiche un message d'exception:
ViewExpiredException: le contexte de la vue n'a pas pu être restauré
Ce que je veux faire, c'est rediriger automatiquement vers la page d'accueil du site Web après la fin de la session. Quel est le mécanisme pour le faire? Toute aide serait très appréciée.
Pour gérer l'exception chaque fois que l'utilisateur invoque une demande synchrone POST sur une page alors que la session HTTP a expiré et que la méthode d'enregistrement d'état d'affichage JSF est définie sur server
, ajoutez un <error-page>
au web.xml
qui attrape le JSF ViewExpiredException
et affiche la page d'accueil.
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/home.xhtml</location>
</error-page>
Pour gérer l'exception sur les demandes asynchrones (ajax) également, vous devez implémenter un ExceptionHandler
personnalisé comme indiqué dans Délai d'expiration de la session et gestion de ViewExpiredException sur la demande ajax JSF/PrimeFaces