Spring MVC JavaConfig webapp中的"error-page"配置?(没有web.xml)

Dan*_*Dan 7 java spring-mvc

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

<error-page>
     <error-code>404</error-code>
     <location>/errors/404</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)

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

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

这看起来像是一个类似的问题: Spring JavaConfig没有捕获PageNotFound?

Ale*_*ykh 9

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


小智 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;
    }
Run Code Online (Sandbox Code Playgroud)