Не могу перенаправить внутри оператора If в сервлете - PullRequest
0 голосов
/ 14 марта 2019

Я работаю над веб-приложением, и в моем сервлете я делаю проверку. Если у меня есть пустой ввод или что-то, я хочу, чтобы он перенаправил на ту же страницу. Но у меня возникли проблемы. Если я попытаюсь сделать перенаправление внутри оператора if (без оператора else), он не будет перенаправлен, он просто опустится ниже и выдаст ошибку.

как я могу заставить это работать? без нескольких операторов if / else. Вот мой упрощенный код:

   if (dateOfDelivery.equals(" ") || dateOfDelivery.equals("")) {
                String errorMsq = "Error create Order, enter return Date";
                log.error(errorMsq);
                new ErrorRedirect().sendRedirect(ErrorRedirect.ERROR_MAIN_MENU_URL + errorMsq, response);
   } else {
                LocalDate sqlDateOfDelivery = LocalDate.parse(dateOfDelivery, dateFormat);
                Long defaultPenalty = 0L;
                OrderValidation.redirectIfBookCountInStockZero(book, response);
                if (book.getCountInStock() == 0 || book.getCountInStock() < 0) {
                    String errorMsq = "Book count in stock equals zero!";
                    new ErrorRedirect().sendRedirect(ErrorRedirect.ERROR_MAIN_MENU_URL + errorMsq, response);
                } else {

                    Order order = Order.builder()....
   response.sendRedirect(allBooksList);

Мой new ErrorRedirect().sendRedirect() это простая оболочка, которую я написал.

1 Ответ

1 голос
/ 14 марта 2019

Просто вернитесь из обработчика после отправки перенаправления, что-то вроде:

if (dateOfDelivery.equals(" ") || dateOfDelivery.equals("")) {
            String errorMsq = "Error create Order, enter return Date";
            log.error(errorMsq);
            new ErrorRedirect().sendRedirect(ErrorRedirect.ERROR_MAIN_MENU_URL + errorMsq, response);
            return "redirected...";
}
...