1

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

4

2 回答 2

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;
    }

}
于 2014-12-01T08:12:14.913 回答
0

你实际上不能用 @ExceptionHandler 注释做你想做的事。这仅适用于特定控制器中的异常,不适用于更一般的事情,例如错误 500。

您可能希望查看实现 HandlerExceptionResolver 接口,并将其连接到更一般的异常中。

这是 spring 文档中的链接。

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

如果您需要任何其他帮助,请告诉我。

于 2012-12-02T00:06:38.223 回答