1
是否有可能從JavaServer Faces如更換JavaServer Faces的錯誤頁面
500 Internal Server Error
取代標準的錯誤頁面?
這些包括諸如堆棧跟蹤等信息。但是對於用戶,當頁面處於生產模式時,我想顯示一個友好的頁面,表明請求沒有成功。
是否有可能從JavaServer Faces如更換JavaServer Faces的錯誤頁面
500 Internal Server Error
取代標準的錯誤頁面?
這些包括諸如堆棧跟蹤等信息。但是對於用戶,當頁面處於生產模式時,我想顯示一個友好的頁面,表明請求沒有成功。
開發堆棧跟蹤可能來自您的JSF實現。禁用它的代碼將特定於該障礙。對於Servlet中MyFaces,使用這個初始化參數在web.xml
:如果您在使用Sun實現(Mojarra)
<context-param>
<param-name>org.apache.myfaces.ERROR_HANDLING</param-name>
<param-value>false</param-value>
</context-param>
,可能會有一些com.sun.faces...
鍵參數。
您可能還想檢查Facelets init parameterfacelets.DEVELOPMENT
的值(請確保您沒有將其設置爲true
)。
要指定錯誤頁面,可以使用通常的容器機制。對於Servlet,這將由specifying a error pages inweb.xml
,鍵入異常類型或錯誤代碼。爲了趕上所有可拋出...
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/errorPage.faces</location>
</error-page>
您可能會發現錯誤的JSF實現處理其他特定於供應商的支持 - 你必須檢查他們的文檔。
謝謝,很好的回答!一個跟進問題,是否有可能在捕捉頁面上使用錯誤消息?(errorPage.faces) – 2009-10-21 11:26:49
哦,順便說一下,我在哪裏可以找到所有com.sun.faces ...鍵控列表參數?我沒有使用Myfaces,我在Facelets中使用JSF 1.2。 – 2009-10-21 11:38:40
要獲取錯誤消息,請嘗試表達式'#{requestScope ['javax.servlet.error.message']}''。要得到異常,請使用'javax.servlet.error.exception' - 請參閱Servlet規範以獲取設置爲請求映射的完整列表錯誤值(如果您想要錯誤代碼等)。您可以在Glassfish的FAQ鑽嘴魚科上下文參數:http://wiki.glassfish.java.net/Wiki.jsp?page=JavaServerFacesRI#section-JavaServerFacesRI-WhatContextParametersAreAvailableAndWhatDoTheyDo – McDowell 2009-10-21 11:53:27