java - 如何将异常发送到 exceptionController?

标签 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>

我正在尝试向 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/

相关文章:

spring - 使用maven时spring配置文件放在哪里

java - 使用 hibernate 二级缓存和 hazelcast 进行数据关联

java - 如何在 Liferay portal 6.2 中部署 geoserver war

java - 为什么我必须同步线程的 ArrayList?

Spring Boot 混淆器

java - Spring boot配置文件同步maven配置文件

java - 如何在spring hibernate中反序列化日期格式?

java - 如何使用@RequestMapping 在 Spring MVC Controller 中优化我的代码?

eclipse - 动态 Web 模块 3.0 -- 3.1

java - 对象是否有 native 类型安全的包装和拆箱?