Подтвердить что ты не робот

Разница между перенаправлением и перенаправлением внутри modelandview

В классе spring для перенаправления на URL

  • все места с помощью return "redirect:/abc.htm";.

  • также используется return new ModelAndView("redirect:/abc.htm").

Любые, пожалуйста, объясните разницу и сходство обоих утверждений.

И в какой ситуации он должен использовать.


Рохит:

Используем RedirectAttribute для получения значений из старого url. В этом случае я получаю значение при использовании этого return "redirect:/abc.htm"; но не в этом return new ModelAndView("redirect:/abc.htm").
Есть ли разница в RedirectAttributes

4b9b3361

Ответ 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.