2012-08-23 51 views
0

我們在我們的struts 1.1應用程序中使用自定義http狀態代碼。它們在web.xml的<error-page>定義下定義。我遇到的問題是我們的錯誤頁面(也在web.xml中爲這些狀態碼定義)沒有顯示這些狀態碼。但是,它會顯示正常的400和500狀態碼。我需要做些什麼來獲得自定義http狀態碼來調用我們的自定義錯誤頁面嗎?目前我正在使用爲大於599的狀態代碼顯示自定義錯誤頁面

response.sendError(601, "custom message") 

觸發錯誤狀態,但它總是進入默認的tomcat錯誤頁面。如果需要,我可以顯示更多代碼。

這裏是錯誤頁面定義:

<error-page> 
    <error-code>601</error-code> 
    <location>/jsp/Error.jsp?errorCode=601</location> 
</error-page> 

感謝

+0

您是否可以發佈您的定義? – crnlx

回答

0

在示例webapp的web.xml中使用錯誤頁面定義可以很好地適用於Tomcat 5.0.28和Struts 1.1。剛剛檢查。 作爲解決方法,您可以將請求中的錯誤代碼/ msg設置爲始終轉發到錯誤頁面

+0

你是否使用response.sendError()來讓它重新出現錯誤狀態? 我將如何設置請求中的錯誤代碼始終轉發到錯誤頁面? – malificent

+0

好的,我想我已經消除了它與狀態碼或錯誤頁面定義的類型有關。我得到它與一個正常的請求,並強制與response.sendError()的錯誤狀態。我認爲這個問題與我試圖以錯誤狀態回覆的具體情況有關。我會接受你的回答,併發布針對我的問題的另一個問題。謝謝。 – malificent

0

超過599狀態碼不允許在HTTP。所以:不要。

+0

可能是這種情況,但是當通過resonse.sendError()設置時,tomcat仍然顯示正確的狀態碼。我的問題是,爲什麼它不會使用我的自定義錯誤頁面,而不是http允許的。 – malificent

+0

你使用哪個Tomcat版本?你有更多的信息,如行動映射?使用Tomcat 7.0.29和Struts 1.3.10,通過在操作類中設置自定義錯誤代碼,轉發到錯誤頁面沒有任何問題。我假設你使用相同的error.jsp作爲其他錯誤,只有參數不同。 –

+0

很遺憾,我們使用Tomcat 5.0.28。是的,我們對每個狀態代碼都使用相同的Error.jsp,對於每個狀態代碼使用不同的參數。 – malificent

相關問題