Spring Jsps и прыжки на якоря - PullRequest
4 голосов
/ 02 марта 2011

Мне было интересно, есть ли в Spring какой-то способ указать в контроллере, что я хотел бы отправить клиента на конкретную привязку на странице .jsp, которую я использую для своего просмотра.

IУ меня есть раздел на моей странице .jsp, идентифицируемый якорем #errors, который отображает любые возникающие ошибки формы.Я хотел бы иметь возможность отправлять их непосредственно на этот якорь всякий раз, когда мне нужно отправить их обратно в .jsp после сбоя проверки модели.

Внутри моих классов контроллеров я обрабатываю ошибки проверки следующим образом:

if (result.hasErrors())
        {

            for (ObjectError error : result.getAllErrors())
            {

                logger.debug("Validation Error: " + error.getDefaultMessage());
            }

            ModelAndView mv = new ModelAndView();

            mv.setViewName("/secure/formViews/newAdminBookingMenu");
            mv.addObject(BindingResult.MODEL_KEY_PREFIX + "booking", result);

            return mv;
        }

Я хотел бы иметь возможность указать в этом блоке кода, что когда клиент получает отрендеренные newAdminBookingMenu.jsp обратно, они отправляются непосредственно в тег привязки #errors на этой странице.

Я, очевидно, не могу сделать это, просто добавив #errors к имени .jsp, которое я хочу визуализировать, поскольку InternalResourceViewResolver интерпретирует представление как /WEB-INF/jsp/jspName#errors.jsp, что явно неверно.

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

Есть идеи?

Приветствия.

1 Ответ

8 голосов
/ 02 марта 2011

Возможно вариант RedirectView:

modelAndView.setView(new RedirectView("error/page#errors", true));

Ссылка:

...