Я использую все функции FullAjaxExceptionHandler для перенаправления, когда какое-либо исключение запускается с помощью запроса ajax, в моем случае поймано ViewExpiredException.Перенаправление после обновления JSF Ajax (ViewRoot)
Я попытаюсь объяснить мой случай:?
1) У меня есть страница index.xhtml с CommandButton (AJAX запроса) о признании недействительной сессию и возвращает действие, как это «/ входа в систему лица переадресацией = истина».
2) Откройте index.xhtml два раза в том же браузере.
3) В первой index.xhtml нажмите на кнопку (сеанс недействительным и перенаправляется login.xhtml)
В этот момент принять во внимание, у меня есть собственный PhaseListener, чтобы проверить, является ли пользователь успешно протоколируется, login.xhtml для публичного доступа, но index.xhtml ограничен для авторизованных пользователей, web.xml для просмотра истек, и 403 ошибки:
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/index.xhtml</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/403.xhtml</location>
</error-page>
4) Перейти к второму index.xhtml (сессия аннулируется в этот момент), теперь нажмите кнопку, чтобы запустить исключение.
FullAjaxExceptionHandler улавливает ViewExpiredException и пытается отобразить index.xhtml, но в то же время мой фазелист проверяет, разрешен ли пользователь, например, сеанс был недействителен, пользователь не авторизовался и мой ответ FireListenerSendError (403) , но не показывает 403.xhtml, потому что это ajax-запрос.
Как я могу отправить 403 ошибку, чтобы показать 403.xhtml из моего PhaseListener? responseSendError отменяет нормальный процесс для FullAjaxExceptionHandler, в этот момент, когда это исключение не происходит, перенаправление происходит.
Кроме того, чтобы уточнить, когда истекает срок действия представления, мне нужно перенаправить на index.xhtml, потому что в процессе производства я использую CAS (Central Authentication Service).
В этом случае мне нужно прочитать web.xml, чтобы настроить страницу с ошибкой. Я изменю свой код. Спасибо, Балус. – Kab