Каковы различия между Model, ModelMap и ModelAndView?
каковы основные различия между следующими Spring Framework классы?
ModelModelMapModelAndView
используя Model.put(String,Object) мы можем получить доступ к значениям в .jsp файлы, но ModelMap.addAttribute(String,Object) также сделал то же самое. Я не понимаю разницы между этими классами.
3 ответов:
Model- это интерфейс, в то время какModelMap- это класс.
ModelAndView- это просто контейнер дляModelMapи объект представления. Это позволяет контроллеру возвращать оба как одно значение.
различия между Model, ModelMap и ModelAndView
модель: это интерфейс. Он определяет держатель для атрибутов модели и в первую очередь предназначен для добавления атрибутов в модели.
пример:
@RequestMapping(method = RequestMethod.GET) public String printHello(Model model) { model.addAttribute("message", "Hello World!!"); return "hello"; }ModelMap: реализация Map для использования при построении данных модели для использования с инструментами пользовательского интерфейса.Поддерживает цепные вызовы и генерацию атрибута модели имена.
пример:
@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); }
модель: это интерфейс, который содержит четыре addAttribute и один merAttribute метод.
ModelMap: реализует интерфейс карты. Он также содержит метод карты.
ModelAndView: Как объяснил Барт, это позволяет контроллеру возвращать оба как одно значение.
Comments