如何向exceptionController发送异常?

iva*_*var 1 java spring tiles spring-mvc

<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>
Run Code Online (Sandbox Code Playgroud)

我正在尝试向控制器发送异常,以便我可以创建重定向.如果我注释掉mappedHandlers部分,则会显示错误图块,但它只是一个图块.其余的瓷砖正常加载.我需要在控制器中进行重定向,这样我才能显示错误页面,而不仅仅是错误图块.

我找不到足够的信息或示例如何在exceptionController中调用异常方法.

ska*_*man 5

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

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

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <property name="defaultErrorView" value="redirect:/myErrorPage" />
</bean>
Run Code Online (Sandbox Code Playgroud)

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

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

另一种方法是使用@ExceptionHandler注释样式(请参阅此处的文档).