2011-12-27 81 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中,我有primefaces-3.0.RC2和prettyfaces-jsf2-3.3.2。

我做错了什么/没做?

回答

2

你关闭了Facelets的错误机制吗?在你的web.xml文件中,你可能需要有以下的context-param:

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

如果还使用MyFaces的,你需要这个额外的context-param:

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

article可能对你有用。

+0

谢谢,Mr.J4ams。这适用于视图过期异常。我仍在研究BalusC提出的Ajax解决方案。 – Herzog 2011-12-27 14:19:39

+0

不客气! =) – 2011-12-27 14:20:53

0

您是否使用任何托管bean来处理错误?如果是这样,你有没有宣布他们?看看这个article