Sobes.tech
Назад к вопросам
Junior — Middle
65

Какое отличие между объектами 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 — для более явного управления и моделью, и представлением.