<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>
我正在尝试向 Controller 发送异常,以便创建重定向。如果我注释掉 mappedHandlers 部分,则会显示错误图 block ,但它只是一个图 block 。其余的图 block 正常加载。我需要在 Controller 中进行重定向,这样我才能显示错误页面而不仅仅是错误图 block 。
我找不到足够的信息或异常如何调用 exceptionController 中的某些方法的示例。
最佳答案
您误解了 mappedHandlers
属性的用途。这就是说这个异常解析器 bean 应该只应用于该属性中列出的 Controller 抛出的异常。它不会将异常发送到那个 Controller 。
如果你想发送一个简单的重定向,那么你可以像这样做一些事情:
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="redirect:/myErrorPage" />
</bean>
不过,这样做您将丢失有关异常的所有信息。
如果您想编写自定义代码来处理异常,那么我建议编写您自己的 HandlerExceptionResolver
实现(可能是 AbstractHandlerExceptionResolver
的子类),并使用它代替SimpleMappingExceptionResolver
。
另一种选择是使用 @ExceptionHandler
注释样式(参见文档 here)。
关于java - 如何将异常发送到 exceptionController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2905164/