Назад к вопросам
Junior — Middle
64
Какое отличие между объектами ModelMap и ModelAndView в контексте передачи данных в Spring MVC?
Ответ от нейросети
sobes.tech AI
В Spring MVC объекты ModelMap и ModelAndView используются для передачи данных из контроллера в представление, но имеют разные назначения:
-
ModelMap — это просто контейнер для атрибутов модели (ключ-значение), который можно передать в метод контроллера. Он служит для добавления данных, которые будут доступны в представлении.
-
ModelAndView — более комплексный объект, который содержит и модель (данные), и имя представления (view). Используется, когда нужно одновременно задать, какие данные передать и какое представление отобразить.
Пример:
@RequestMapping("/example")
public ModelAndView example() {
ModelAndView mav = new ModelAndView("viewName");
mav.addObject("message", "Hello World");
return mav;
}
// или с ModelMap
@RequestMapping("/example2")
public String example2(ModelMap model) {
model.addAttribute("message", "Hello World");
return "viewName";
}
Таким образом, ModelMap удобен для простого добавления данных, а ModelAndView — для более явного управления и моделью, и представлением.