Чем является модель в приведённом коде?
В ходе изучения Spring MVC столкнулся с таким примером (на листинге изображён метод rest-контроллера):
@RequestMapping(value = "/users/add", method = RequestMethod.GET)
public String showAddUserForm(Model model) {
User user = new User();
model.addAttribute("userForm", user);
//...
}
Метод принимает экземпляр некоего интерфейса Model. Меня смутило его название, потому что, насколько я понимаю, это не то же самое, что модель в MVC. Вот что написано в документации к этому интерфейсу:
Специфичный для Java-5 интерфейс, определяющий держателя атрибутов модели. В первую очередь предназначен для добавления атрибутов в модель. Позволяет получить доступ к общей модели в виде java.util.Map.
Что это за общая модель? Насколько я понимаю, в эту Model добавляются какие-то атрибуты, а потом отправляются на UI, где JS их вытаскивает. Я примерно понимаю, как Model работает. Но не понимаю, что она такое.
Что из себя представлят эта Model? Чем она является в контексте JavaScrypt/UI/DOM или чего-то ещё? Что это такое и как оно выглядит вне rest-контроллеров Spring?
Ответы (1 шт):
Давайте попробую объяснить.
MVC - Шаблон проектирования предполагает разделение данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента: Модель, Представление и Контроллер – таким образом, что модификация каждого компонента может осуществляться независимо.
В вашем случае дело происходит в контроллере в который приходит модель. Не заморачивайтесь слишком глубоко поскольку эта модель запроса в котором хранятся в виде Map параметры запроса. Добавив необходимых данных в этоту модель можно сгенерировать view и отправить ответом на запрос.