【问题标题】:"error-page" configuration in Spring MVC JavaConfig webapp? (no web.xml)Spring MVC JavaConfig webapp中的“错误页面”配置? (没有 web.xml)
【发布时间】:2013-10-17 08:45:02
【问题描述】:

如何使用 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 catching PageNotFound?

【问题讨论】:

    标签: java spring-mvc


    【解决方案1】:

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

    【讨论】:

    • 谢谢。我现在可以使用只包含错误映射的 web.xml。
    【解决方案2】:

    您可以创建 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;
        }
    

    【讨论】:

      猜你喜欢
      • 2017-01-19
      • 2015-11-10
      • 1970-01-01
      • 2011-12-27
      • 2013-03-22
      • 2020-09-29
      • 2012-09-30
      • 2016-07-03
      • 1970-01-01
      相关资源
      最近更新 更多