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

Какая разница между ModelAndView и ModelMap?

Является ли ModelMap только новое имя в Spring 3 для ModelAndView?

Изменяется ли функциональность в Spring 3?

Рассмотрим этот код в приложении Spring 3, используя ModelMap:

 @RequestMapping(value = "/order", method = RequestMethod.GET)
 public final String setup(final ModelMap model)
 {
  model.addAttribute(ORDER, new Order());
  return "setup";
 }

Я хотел бы знать, что эквивалентное использование здесь ModelAndView будет в более старом приложении Spring? Было бы просто потребовать изменения имени от ModelMap до ModelAndView, чтобы заставить это работать в Spring 2.5?

4b9b3361

Ответ 1

ModelAndView, как следует из названия, содержит модель и имя представления. ModelMap, в контракте, содержит только информацию о модели.

Ваш пример был бы написан (в "старом" Spring) как

 public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
 {
  return new ModelAndView("setup", ORDER, new Order());
 }

Ответ 2

@coder247 Кто-то исправит меня, если я ошибаюсь, но вам не нужно возвращать ModelMap. Добавьте свои атрибуты в свой ModelMap и просто верните строку, которая является именем вида.

Это отличная статья, в которой объясняется, как это сделать и многое другое... http://www.mkyong.com/spring-mvc/spring-mvc-form-handling-annotation-example/