使用@ExceptionHandler处理Spring MVC中的“错误500”

时间:2012-12-01 23:42:50

标签: java spring model-view-controller error-handling

(首先,我必须说我一直在寻找stackoverflow和互联网的答案,但没有找到足够的答案)* *我刚开始使用Spring MVC进行冒险,我的第一个任务是使用@ExceptionHandler注释来处理内部服务器错误(首先,我要指出我不想在web.xml中使用错误页面)。简而言之,每当“错误500”发生时,应该显示具有到主站点的链接的适当站点。所以,我的问题是我不知道如何在每次发生错误500时调用@ExceptionHandler(Exception.class)之后的方法。

2 个答案:

答案 0 :(得分:2)

如果您使用java配置,您可以尝试如下:

@Configuration
public class ExcpConfig {

    @Bean(name = "simpleMappingExceptionResolver")
    public SimpleMappingExceptionResolver simpleMappingExceptionResolver() {
        SimpleMappingExceptionResolver resolver= new SimpleMappingExceptionResolver();

        Properties mappings = new Properties();
        resolver.setExceptionMappings(mappings); // None by default
        resolver.setExceptionAttribute("ErrorOccurred"); // Default is "exception"
        resolver.setDefaultErrorView("500"); // 500.jsp
        return resolver;
    }

}

答案 1 :(得分:0)

使用@ExceptionHandler注释实际上无法实现所需的功能。这仅适用于特定控制器中的异常,而不适用于错误500的更常见的事情。

您可能希望查看实现HandlerExceptionResolver接口,并将其连接到更一般的例外情况。

以下是春季文档中的链接。

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/mvc.html#mvc-exceptionhandlers

如果您需要任何其他帮助,请与我们联系。