2011-08-18 38 views

回答

1

大概是因爲Struts2的的ExceptionMappingInterceptor捕獲異常並將它們映射到錯誤頁面本身。

您可以使用您的struts.xml如下:

<global-results> 
    <result name="error">/WEB-INF/error.jsp</result> 
</global-results> 

<global-exception-mappings> 
    <exception-mapping exception="java.lang.Exception" result="error"/> 
</global-exception-mappings> 

或者,你可以從攔截器棧去除ExceptionMappingInterceptor,如果你真的想使用的web.xml方法。

+0

然而,這隻發生在準備方法中。如果ExceptionMappingInterceptor捕獲異常,它將捕獲所有異常。但是我的web.xml中的servlet異常處理程序可以捕獲操作中的異常。 – sse

+1

你確定這發生在所有的準備方法或只是一個特定的? PrepareInterceptor只是在執行準備時重新拋出遇到的任何異常。也許你應該發佈你有問題的準備方法的代碼。 –

+0

所有的準備方法。在這些準備方法中,只包含通過hibernate訪問數據庫的方法。現在我只是將所有由struts2捕獲的異常轉發到web.xml中的異常處理程序。有線! – sse

相關問題