Какая разница между 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?
Ответы
Ответ 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/