JSF 1.x не обеспечивает неявной обработки ошибок этого типа, хотя можно перенаправить к ошибочной странице с помощью правил перехода (принимающий должность формы)...
<navigation-case>
<description>
Handle a generic error outcome that might be returned
by any application Action.
</description>
<display-name>Generic Error Outcome</display-name>
<from-outcome>loginRequired</from-outcome>
<to-view-id>/must-login-first.jsp</to-view-id>
</navigation-case>
... или использование перенаправления...
FacesContext context = FacesContext.getCurrentInstance();
ExternalContext extContext = context.getExternalContext();
String url = extContext.encodeActionURL(extContext
.getRequestContextPath()
+ "/messages.faces");
extContext.redirect(url);
я рекомендую смотреть спецификация JSF для получения дополнительной информации.
сообщения об ошибках могут быть помещены в параметры объема/URL объема/сессии запроса, как Вам нравится.
<час>Принятие контейнера Сервлета, можно использовать обычное ошибочная конфигурация страницы web.xml .
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/errorPage.faces</location>
</error-page>
В Вашем бобе поддержки, можно обернуть и бросить контролируемые исключительные ситуации в RuntimeException с.
Некоторые реализации/платформы JSF зафиксируют эти ошибки (Apache MyFaces/Facelets), таким образом, Вы будете иметь к , настраивают их не к .
Общий способ отобразить сообщение об ошибке пользователю в JSF состоит в том, чтобы использовать FacesMessage:
На стороне Java:
...
if (errorOccurred) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("An error occurred blabla..."));
}
и в JSF (JSP или XHTML) страница, просто используйте <h:messages/>
компонент на Вашей странице для отображения ошибки.
Можно поместить
<%@ page errorPage="error.jsp" %>
в подмастерье jsp/jsf страница. В error.jsp jou имел бы:
<%@ page isErrorPage="true" %>
isErrorPage = "верный" даст Вашей странице другой неявный объект: исключение (тот же путь у Вас уже есть запрос и ответ на jsp странице). Можно тогда извлечь сообщение из исключения.
JSF 2 теперь имеет механизм обработки исключений:
http://java.sun.com/javaee/6/docs/api/javax/faces/context/ExceptionHandler.html