Здравствуйте.Как перенаправить с 1 контроллера на другой если нужно в 1 контроллере вставить атрибут на страницу и потом перенаправить?

Вот мой код он просто перенаправляет но не выдает ошибку .Мне нужно что бы после перенаправления в случии ошибки валидации он выводил ошибку на страницу.Подскажите пожалуйста буду очень благодарен.
@RequestMapping(value = "/user/addComment", method = RequestMethod.POST)
    public String addComment(HttpServletRequest req,@ModelAttribute("Comment")@Valid Comment comment, BindingResult bindingResult) throws IOException {
        if (bindingResult.hasErrors()){
            return "redirect:/user/detailedNews";
        }
        Long idNews= Long.parseLong(req.getParameter("idNews"));
        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        AppUserPrincipal user =(AppUserPrincipal)auth.getPrincipal();
        commentService.saveComment(idNews,user.getUser(),comment);
        return "redirect:/user/detailedNews";
    }
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
TheDeadOne
@TheDeadOne
Седой и строгий
При ошибках не делают перенаправления, при ошибке надо вернуть имя шаблона:
if (bindingResult.hasErrors()) {
    return "detailed_news_template";
}

Если же всё-таки надо передать данные при перенаправлении, то нужно использовать RedirectAttributes:
@RequestMapping(value = "/user/addComment", method = RequestMethod.POST)
public String addComment(HttpServletRequest req, @ModelAttribute("Comment") @Valid Comment comment, BindingResult bindingResult, RedirectAttributes redirectAttributes) throws IOException {
    if (bindingResult.hasErrors()) {
        redirectAttributes.addFlashAttribute("errors", bindingResult.getAllErrors());
        return "redirect:/user/detailedNews";
    }
    ...
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
ИП Шпак Виктория Сергеевна Санкт-Петербург
от 90 000 до 150 000 руб.
Payneteasy Москва
от 120 000 руб.
от 160 000 до 200 000 руб.
18 авг. 2018, в 11:06
10000 руб./за проект
18 авг. 2018, в 10:13
500 руб./в час
18 авг. 2018, в 09:13
13000 руб./за проект