JSF 1.x универсальная обработка исключений

16
задан BalusC 7 July 2014 в 06:52
поделиться

4 ответа

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), таким образом, Вы будете иметь к , настраивают их не к .

19
ответ дан 30 November 2019 в 16:37
поделиться

Общий способ отобразить сообщение об ошибке пользователю в JSF состоит в том, чтобы использовать FacesMessage:

На стороне Java:

...
if (errorOccurred) {
    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("An error occurred blabla..."));
}

и в JSF (JSP или XHTML) страница, просто используйте <h:messages/> компонент на Вашей странице для отображения ошибки.

3
ответ дан 30 November 2019 в 16:37
поделиться

Можно поместить

<%@ page errorPage="error.jsp" %>

в подмастерье jsp/jsf страница. В error.jsp jou имел бы:

<%@ page isErrorPage="true" %>

isErrorPage = "верный" даст Вашей странице другой неявный объект: исключение (тот же путь у Вас уже есть запрос и ответ на jsp странице). Можно тогда извлечь сообщение из исключения.

Дополнительные детали

1
ответ дан 30 November 2019 в 16:37
поделиться

JSF 2 теперь имеет механизм обработки исключений:

http://java.sun.com/javaee/6/docs/api/javax/faces/context/ExceptionHandler.html

8
ответ дан 30 November 2019 в 16:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: