如何向exceptionController发送异常?

时间:2010-05-25 13:42:21

标签: java spring spring-mvc tiles

<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中调用某些方法。

1 个答案:

答案 0 :(得分:5)

您误解了mappedHandlers属性的用途。这就是说这个异常解析器bean应该只适用于该属性中列出的控制器引发的异常。它发送到那个控制器。

如果您想发送一个简单的重定向,那么您可以像这样进行somrthing:

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

但是,通过执行此操作,您将丢失有关异常的所有信息。

如果您想编写自定义代码来处理异常,那么我建议编写您自己的HandlerExceptionResolver实现(可能是AbstractHandlerExceptionResolver的子类),并使用它代替SimpleMappingExceptionResolver

另一种方法是使用@ExceptionHandler注释样式(请参阅文档here)。