Для обычных запросов мы можем просто зарегистрировать <error-page>
в web.xml
.Однако это не относится к Ajax-запросам.По умолчанию ошибки во время Ajax-запроса приводят к появлению небольшого всплывающего окна в браузере, которое показывает исключение.
Основной пример, с которым я борюсь, - это обработка ViewExpiredException
единообразным способом.Для стандартных запросов я перенаправляю на страницу, которая объясняет, что пользователь не вошел в систему, и предоставляет ссылку на страницу входа.Я хотел бы сделать то же самое для Ajax-запросов.Кажется, есть несколько способов:
- Я мог бы написать функцию javascript, которая обрабатывает ошибки на стороне клиента и перенаправляет на страницу ошибок.Затем мне пришлось бы добавить эту функцию каждый
<f:ajax>
-tag на всех страницах , используя onerror
-атрибут.Есть ли способ сообщить JSF, что я хочу использовать эту функцию javascript в качестве обработчика ошибок по умолчанию для всех <f:ajax>
-тегов? - Я мог бы использовать собственный обработчик исключений, как описано в этот блог .Кажется, это делает то, что я хочу, но мне интересно, если это излишне.Разве нет более простого решения?
Итак, мой вопрос, как это должно быть решено?Какой из перечисленных мною подходов следует использовать?Есть ли другой подход, о котором я не знаю?