2010-05-25 42 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)。

相关问题