在Spring Boot 1.5.20.RELEASE

时间:2019-04-24 17:25:15

标签: java spring-boot

我正在尝试使用ErrorViewResolver,尝试从ModelAndView重定向视图,但它始终显示404 http状态错误。我正在使用的Spring Boot版本是1.5.20.RELEASE。当我将版本降级到1.5.1x.RELEASE或升级到2.x时,它已成功重定向。

以下是示例代码:

@Component
public class MyErrorResolveView implements ErrorViewResolver {
    @Override
    public ModelAndView resolveErrorView(HttpServletRequest request, HttpStatus status, Map<String, Object> model) {
        // return new ModelAndView("test"); // this work fine
        return new ModelAndView("redirect:/page"); 
    }
}

application.properties

spring.mvc.view.prefix=/WEB-INF/pages/
spring.mvc.view.suffix=.jsp
server.error.whitelabel.enabled=false

控制器

 @GetMapping(value =  {"/page"})
 public ModelAndView page() {
    return new ModelAndView("test");
 }

Spring Security:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.cors().disable().csrf().disable().authorizeRequests().anyRequest().permitAll();
}

JSP位置:src / main / webapp / WEB-INF / pages / test.jsp

使用bootRun运行,尝试访问http://localhost:8080/notExist,应该会看到“测试”页面,但实际会看到HTTP ERROR 404页面。

  • Spring Boot 1.5.20.RELEASE
  • java 1.8
  • 5.2.1级

我不确定是否缺少任何配置,还是Spring Boot 1.5.20.RELEASE的错误/功能?

1 个答案:

答案 0 :(得分:1)

Spring Boot 1.5.20.RELEASE取决于tomcat-embed-core 8.5.39,并且tomcat版本具有一些重大更改。尝试使用旧的tomcat-embed-core版本。