Как обрабатывать истечение сеанса и ViewExpiredException в JSF 2? - PullRequest
47 голосов
/ 14 февраля 2011

Рассмотрим следующий сценарий.Я нажимаю кнопку отправки формы JSF после истечения времени ожидания сеанса.Браузер отображает сообщение об исключении:

ViewExpiredException: контекст просмотра не может быть восстановлен

Я хочу автоматически перенаправить на домашнюю страницу веб-сайта послесеанс истек.Какой механизм для этого?Любая помощь будет высоко ценится.

1 Ответ

91 голосов
/ 14 февраля 2011

Чтобы обработать исключение всякий раз, когда пользователь вызывает синхронный запрос POST на странице, когда сеанс HTTP истек, а метод сохранения состояния просмотра JSF установлен на server, добавьте <error-page> к web.xml, который ловит JSF ViewExpiredException и показывает домашнюю страницу.

<error-page>
    <exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>/home.xhtml</location>
</error-page>

Чтобы обработать исключение и для асинхронных (ajax) запросов, вам необходимо реализовать пользовательский ExceptionHandler, как было указано в ответе Время ожидания сеанса и обработка ViewExpiredException в запросе JSF / PrimeFaces ajax

Смотри также:

...