Различия между Model, ModelMap и ModelAndView
Модель: это интерфейс.
Пример:
@RequestMapping(method = RequestMethod.GET)
public String printHello(Model model) {
model.addAttribute("message", "Hello World!!");
return "hello";
}
ModelMap: реализация карты для использования при создании данных модели для использования с UI tools.Поддерживает прикованные вызовы и генерирует имена атрибутов модели.
Пример:
@RequestMapping("/helloworld")
public String hello(ModelMap map) {
String helloWorldMessage = "Hello world!";
String welcomeMessage = "Welcome!";
map.addAttribute("helloMessage", helloWorldMessage);
map.addAttribute("welcomeMessage", welcomeMessage);
return "hello";
}
ModelAndView: этот класс просто содержит оба, чтобы дать возможность контроллеру вернуть обе модели и просмотр в одном возвратном значении.
Пример:
@RequestMapping("/welcome")
public ModelAndView helloWorld() {
String message = "Hello World!";
return new ModelAndView("welcome", "message", message);
}