Подтвердить что ты не робот

Каковы различия между Model, ModelMap и ModelAndView?

В чем основные отличия между следующими Spring Framework классами?

  • Model
  • ModelMap
  • ModelAndView

Используя Model.put(String,Object), мы можем получить доступ к значениям в файлах .jsp, но ModelMap.addAttribute(String,Object) тоже сделал то же самое. Я не понимаю разницы между этими классами.

4b9b3361

Ответ 1

Model - это интерфейс, а ModelMap - класс.

ModelAndView является просто контейнером как для ModelMap, так и для объекта вида. Он позволяет контроллеру возвращать оба как одно значение.

Ответ 2

Различия между Model, ModelMap и ModelAndView

Модель: Это интерфейс. Он определяет держатель для атрибутов модели и в первую очередь предназначен для добавления атрибутов в модель.

Пример:

@RequestMapping(method = RequestMethod.GET)
    public String printHello(Model model) {
          model.addAttribute("message", "Hello World!!");
          return "hello";
       }

ModelMap: Реализация карты для использования при создании данных модели для использования с инструментами пользовательского интерфейса. Поддерживает прикованные вызовы и генерирует имена атрибутов модели.

Пример:

@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);
    }

Ответ 3

Модель: это интерфейс, содержащий четыре метода addAttribute и один метод merAttribute.

ModelMap: реализует интерфейс карты. Он также содержит метод Map.

ModelAndView. Как объясняет Барт, он позволяет возвращать контроллер как одно значение.