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