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 中的某些方法的示例。

4

1 回答 1

5

你误解了mappedHandlers财产的用途。这就是说这个异常解析器 bean 应该只适用于该属性中列出的控制器抛出的异常。它不会异常发送该控制器。

如果你想发送一个简单的重定向,那么你可以这样做:

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

但是,这样做会丢失有关异常的所有信息。

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

另一种选择是使用@ExceptionHandler注释样式(请参阅此处的文档)。

于 2010-05-26T07:11:01.590 回答