2010-05-25 23 views
1
<bean 
    class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> 
    <property name="mappedHandlers"> 
     <set> 
      <ref bean="exceptionController" /> 
     </set> 
    </property> 
    <property name="defaultErrorView" value="tiles/content/error" /> 
</bean> 

我想向控制器發送異常,所以我可以創建一個重定向。如果我註釋掉mappedHandlers部分,則會顯示錯誤圖塊,但它只是一個圖塊。其餘的瓷磚正常加載。我需要在控制器中進行重定向,以便我可以顯示錯誤頁面,而不僅僅是錯誤圖塊。如何向exceptionController發送異常?

我找不到足夠的信息或示例異常如何在exceptionController中調用某個方法。

回答

5

您誤解了mappedHandlers屬性的用途。這就是說這個異常解析器bean只適用於在該屬性中列出的控制器引發的異常。它確實不是發送例外那個控制器。

如果您想發送一個簡單的重定向,那麼你可以做somrthing這樣的:

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> 
    <property name="defaultErrorView" value="redirect:/myErrorPage" /> 
</bean> 

您將這樣做失去了異常的所有信息,但。

如果要編寫自定義代碼來處理異常,那麼我建議寫自己實現HandlerExceptionResolver(大概的AbstractHandlerExceptionResolver子類),並使用該代替SimpleMappingExceptionResolver

另一種替代方法是使用@ExceptionHandler註釋樣式(請參閱文檔here)。

相關問題