2012-04-11 4 views
2

Я пытаюсь реализовать свой первый контроллер Spring MVC, следуя весенней документации, некоторым учебникам и книге «Весна в действии».Модель управления весной Контроллер MVC

Теперь у меня есть сомнения: внедрение методов контроллера. Я нахожу различия в обращении с моделью. Иногда они используют Map<String, Object>, объект Model или объект ModelAndView.

В чем разница между использованием объекта? В чем причина выбора одного вместо другого?

ответ

2

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

Таким образом, с моделью и видом вы можете объяснить, как установить имя вида.

Если вы только что установили модель и вернули строку в контроллер, имя вида выводится из запроса uri.

0

Весенние документы: «В нормальном случае экземпляр ModelAndView состоит из имени представления и карты моделей, в котором содержатся имена фанов и соответствующие объекты (например, команда или форма, содержащие ссылочные данные)». - Способ передачи объектов в представление (или обратно), если вам нужно собирать записи из форм, отображать что-то (объекты dao) и т. Д.

---- пример ModelAndView model = new ModelAndView(); model.addObject (путь);
model.addObject («пользователь», пользователь);
model.addObject ("приветствие", service.getMessage());

модель возврата;

// ViewName, Bean Пользователь, MSG Bean

// Весна документ

интерфейс контроллера общественного {

/** 
* Process the request and return a ModelAndView object which the DispatcherServlet 
* will render. 
*/ 
ModelAndView handleRequest(
    HttpServletRequest request, 
    HttpServletResponse response) throws Exception; 

}

0

ModelAndView является держателем как для модели и представления в веб-среде MVC. Обратите внимание, что они совершенно разные. Этот класс просто удерживает оба, чтобы позволить контроллеру возвращать как модель, так и представление в одном возвращаемом значении.

Он представляет собой модель и представление, возвращенное обработчиком, которое должно быть разрешено диспетчером. Представление может иметь форму имени представления String, которое должно быть разрешено объектом ViewResolver;

В качестве альтернативы, объект вида можно указать напрямую. Модель представляет собой карту, позволяющую использовать несколько объектов с ключом по имени.

Смежные вопросы