java - 在 Spring Boot 1.5.20.RELEASE 上无法重定向 ErrorViewResolver 内的 View

标签 java spring-boot

我正在尝试使用 ErrorViewResolver,尝试从 ModelAndView 重定向 View ,但它一直显示 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"); 
    }
}

应用程序属性

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

Controller

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

Spring 安全:

@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
  • Gradle 5.2.1

我不确定是否遗漏了任何配置,或者这是 Spring Boot 1.5.20.RELEASE 的错误/功能?

最佳答案

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

关于java - 在 Spring Boot 1.5.20.RELEASE 上无法重定向 ErrorViewResolver 内的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55835501/

相关文章:

java - 用另一个相同类型的对象更新 java 对象的属性

Java 作为通用的高阶函数式编程语言

java - 如何使用 grep 命令从日志文件中捕获相关 ID 以及 java stacktrace 和多行消息

java - H2数据库向主键插入空值

spring-boot - 生成的测试源未在构建过程中被调用

java - JConsole 中的内存泄漏是什么样子的?

java - 我不断收到 java.io.NotSerializableException : java. io.ObjectOutputStream

java - iText PdfCopy 创建可编辑的 pdf 文档

java - Spring boot Security,Oauth2 注销,使 session 无效,以便在授权服务器中完成身份验证和批准周期

java - 如何在缓存的分页结果中添加新的或更新的对象