Обработка исключений JSF2 - PullRequest
6 голосов
/ 12 декабря 2011

Каков лучший способ обработки «непроверенных» исключений в веб-приложении JSF2?

В настоящее время я позволяю им течь до контейнера сервлета и перенаправляю (через файл web.xml) на ошибку jspстраница с дружеским сообщением и информацией об исключении.

Лучше ли обрабатывать их с помощью «пользовательского обработчика исключений» (как говорит Эд Бернс в книге «JSF 2.0 - Полный справочник»).

В обоих случаях («web.xml» или «обработчик исключений»): нужно ли перенаправлять на страницу jsp вместо страницы лицевой страницы?(потому что исключение может быть вызвано самой проблемой jsf и может привести к циклу).Или я могу перенаправить на страницу Facelet?Переадресация на страницу jsp имеет недостаток, заключающийся в том, что приложение jsf необходимо настроить так, чтобы оно допускало как jsp, так и facelets (было бы более «чисто», если бы были только страницы с лицевыми сторонами).

Наконец, еще один вопрос: «пользовательское исключение»обработчик "обрабатывает" проверенные "исключения тоже?В настоящее время я обрабатываю их в управляемых компонентах (поймать их и показать сообщение лица на странице приложения).

1 Ответ

6 голосов
/ 13 декабря 2011

Как лучше всего обрабатывать «непроверенные» исключения в веб-приложении JSF2?

Все зависит от функциональных требований.Непроверенные исключения обычно указывают на ошибки и проблемы конфигурации в вашем веб-приложении.Они обычно не должны быть пойманы, а просто пузыриться в контейнере.Обычно это не ошибка конечного пользователя, а просто ошибка разработчика или сервера.


В настоящее время я позволяю им течь до контейнера сервлета и перенаправляю (через файл web.xml)на страницу ошибки jsp с дружеским сообщением и информацией об исключении.

Лучше ли обрабатывать их с помощью «пользовательского обработчика исключений» (как говорит Эд Бернс в книге «JSF 2.0»- Полная ссылка ").

Пользовательский обработчик исключений особенно полезен, если вы хотите иметь более точный контроль над исключениями в асинхронных (ajax, XMLHttp) запросах, поскольку они не являютсяобрабатывается <error-page> в web.xml.С помощью специального обработчика исключений вы сможете перейти к определенной странице ошибки, чтобы она отображалась во всей красе вместо загадочного сообщения об исключении в диалоговом окне предупреждений JavaScript.Но для исключений в синхронных (нормальных HTTP) запросах это несколько избыточно по сравнению с <error-page> в web.xml.


В обоих случаях ("web.xml" или«обработчик исключений»): нужно ли перенаправлять на страницу jsp вместо страницы лицевой страницы?(потому что исключение может быть вызвано самой проблемой jsf и может привести к циклу).Или я могу перенаправить на страницу Facelet?Переадресация на страницу jsp имеет недостаток, заключающийся в том, что приложение jsf необходимо настроить так, чтобы оно допускало как jsp, так и facelets (было бы более «чисто», если бы были только страницы с лицевой стороной).

Просто убедитесь, чточто страница исключений не содержит ошибок.Это независимо от того, является ли это страницей JSP или Facelets.Ошибки могут ползти по страницам JSP так же хорошо.


Наконец, еще один вопрос: «Обработчик пользовательских исключений» также обрабатывает «проверенные» исключения?В настоящее время я работаю с ними в управляемых компонентах (поймайте их и покажите FaceSssage на странице приложения).

Он обрабатывает все виды исключений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...