Невозможно перенаправить представление внутри ErrorViewResolver в Spring Boot 1.5.20.RELEASE - PullRequest
1 голос
/ 24 апреля 2019

Я экспериментирую с ErrorViewResolver, пытаюсь перенаправить представление из ModelAndView, но он отображает 404 http status error. Я использую версию Spring Boot 1.5.20. Хотя я понижаю версию до 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,, который, как ожидается, увидит страницу "test", но в действительности см. Страницу HTTP ERROR 404.

  • Spring Boot 1.5.20.RELEASE
  • Java 1,8
  • Gradle 5.2.1

Я не уверен, что есть какая-то конфигурация, которую я пропустил, или это ошибка / функция для Spring Boot 1.5.20.RELEASE?

1 Ответ

1 голос
/ 25 апреля 2019

Spring Boot 1.5.20.RELEASE зависит от tomcat-embed-core 8.5.39, и версия Tomcat имеет некоторые критические изменения.Попробуйте использовать старую tomcat-embed-core версию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...