Контроллер не может перейти к просмотру при настройке страницы ошибок Whitelabel - PullRequest
0 голосов
/ 24 апреля 2019

введите описание изображения здесь Когда я попытался настроить страницы ошибок, я обнаружил, что сеть не может перейти к просмотру, как ожидалось.Когда программа получает ответ «404» от сервера, он скачет правильно, но когда получает «500», он не может работать.

Я пытался поменять позицию и другие html-файлы, результат всегда одинаков«404» может работать хорошо, а «500» - нет.И я попытался использовать редирект, волшебная вещь произошла, она работает!Не могли бы вы объяснить это?

 @Controller("error")

открытый класс GrobalException реализует ErrorController {// private static final String ERROR_PATH = "/ error";

@RequestMapping(value = "/error")
public String handleError(HttpServletRequest request) {
    Object status=request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
    if(status!=null){
        Integer statuscode=Integer.valueOf(status.toString());
        if(statuscode==HttpStatus.NOT_FOUND.value()){
            return "404";
        }
        else if(statuscode==HttpStatus.INTERNAL_SERVER_ERROR.value()){
            System.out.println("status is "+statuscode+" intern is "+HttpStatus.INTERNAL_SERVER_ERROR.value());
            return "success";//If i change it to "return "redirect:/success", and define new controller for it, that can jump to success.html 
        }
    }
    return "test";
}

@Override
public String getErrorPath() {
    return "/error";
}

}

Я должен был думать, что это одно и то же, поэтому я должен использовать другой код для получения другого кода ошибки.

1 Ответ

0 голосов
/ 24 апреля 2019

Вам не нужно писать сложный код.

@Controller
@RequestMapping("/")
public class ErrorController {
  @RequestMapping(value = "404",method = RequestMethod.GET)
  public String Page404(ModelMap model) {
    return "404";
  }
    @RequestMapping(value = "500",method = RequestMethod.GET)
    public String Page500(ModelMap model) {
        return "500";
    }
}

web.xml

    <error-page>
        <error-code>404</error-code>
        <location>/404</location>
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/500</location>
    </error-page>

404.jsp

<html>
<body>
<h1>This is custom 404 page.</h1>
</body>
</html>

500.jsp

<html>
<body>
<h1>This is custom 500 page.</h1>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...