7

我将如何使用 Java 配置向 Spring MVC webapp 添加“错误页面”类型配置?(没有 web.xml)?

<error-page>
     <error-code>404</error-code>
     <location>/errors/404</location>
</error-page>

我想使用这样的配置(在 Java Config 中)将所有未捕获的异常转发到特定的控制器方法。

我希望避免使用 @ControllerAdvice / @ExceptionHandler 配置(它允许我创建一个可以处理所有错误的控制器方法),因为我希望 Spring Security 继续捕获 Access Denied 异常,并让任何其他异常由我的代码处理。

看起来这里问了一个类似的问题: Spring JavaConfig is not catch PageNotFound?

4

2 回答 2

9

查看https://java.net/jira/browse/SERVLET_SPEC-50 - 没有 web.xml 就无法配置它,但您可以创建手动过滤器来为您做同样的事情。

于 2013-10-09T20:10:27.870 回答
5

您可以创建 SimpleMappingExceptionResolver bean,并为 http 错误设置页面,而无需使用 web.xml。或任何异常的默认视图。这里:

    @Bean
    public SimpleMappingExceptionResolver simpleMappingExceptionResolver(){

    SimpleMappingExceptionResolver resolver = new SimpleMappingExceptionResolver();

    //page and statusCode pare 
    //you also can use method setStatusCodes(properties)
    resolver.addStatusCode(viewName, statusCode); 

    //set views for exception 
    Properties mapping = new Properties();
    mapping.put("ua.package.CustomException" , "page")    
    resolver.setExceptionsMapping(mapping); 

    return resolver;
    }
于 2015-06-11T15:47:32.630 回答