2011-12-27 68 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