2011-12-27 5 views
0

Я пытаюсь сделать простую пересылку на страницу с ошибкой в ​​приложении JSF 2. Инструкции везде кажутся достаточно простыми, но это просто не работает для меня. Это то, что я пробовал. Я поставил следующие в web.xml:Обработка ошибок JSF 2 не работает

<error-page> 
    <exception-type>java.lang.Throwable</exception-type> 
    <location>/pages/error.jsf</location> 
</error-page> 

Я попробовал исключение типа java.lang.Exception, и я попытался с помощью код-ошибки вместо исключения типа. Я также попытался назвать страницу (в приведенном выше фрагменте) error.xhtml, и я пробовал все это с помощью страницы error.jsp. Ничего не работает.

Я тестирую это, просто отключая сервер базы данных, поэтому любая попытка входа в систему вызывает исключение. И это отображается на экране вместо страницы с ошибкой.

Я использую eclipse, tomcat 7 и myfaces 2.1.4. Также в моем WEB-INF/lib у меня есть праймеры-3.0.RC2 и prettyfaces-jsf2-3.3.2.

Что я делаю неправильно/не делаю?

ответ

2

Вы закрыли механизмы ошибок Facelets? В вас web.xml файле, возможно, придется иметь следующий контекст-параметры:

<context-param> 
    <param-name>facelets.DEVELOPMENT</param-name> 
    <param-value>false</param-value> 
</context-param> 

Если вы используете MyFaces, вам нужен этот дополнительный контекст-параметры:

<context-param> 
    <param-name>org.apache.myfaces.ERROR_HANDLING</param-name> 
    <param-value>false</param-value> 
</context-param> 

Это article может быть полезно для вас.

+0

Спасибо, Mr.J4ams. Это работает для исключения с истекшим представлением. Я все еще работаю над решением Ajax, предлагаемым BalusC. – Herzog

+0

Добро пожаловать! знак равно –

0

Вы использовали какой-либо управляемый компонент для обработки ошибки? Если да, объявили ли вы их? Проверьте это article.

Смежные вопросы