Ответ 1
Операторы:
return "redirect:/abc.htm"
return new ModelAndView("redirect:/abc.htm")
выполните одно и то же: redirects
запрос abc.htm
. Если возвращается имя вида, которое имеет
префикс redirect:
, это признается специальным признаком необходимости перенаправления. Остальное имя вида будет рассматриваться как URL-адрес переадресации.
С утверждением
return "redirect:/abc.htm"
вы можете вернуть только имя вида переадресации.
С помощью ModelAndView
вы можете вернуть как model
, так и view
в одно возвращаемое значение:
ModelAndView modelAndView = new ModelAndView("redirect:/abc.htm");
modelAndView.addObject("modelAttribute" , new ModelAttribute());
return modelAndView;
Но значение атрибута не будет доступно в новом запросе перенаправления, который клиент (браузер) сделает для URL /abc.htm
. Лучшее использование ModelAndView
- это когда вы пересылаете запрос на новый URL-адрес, чтобы вы могли возвращать как model
, так и view
вместе в одном возвращаемом значении. Для перенаправления сценариев, если вы хотите передать атрибуты, вы должны использовать RedirectAttributes
.