В чем смысл аннотации @ModelAttribute на уровне аргумента метода?

Ссылка Spring 3 учит нас:

Когда вы помещаете ее в метод параметр @ModelAttribute отображает атрибут модели к конкретному, параметр аннотированного метода

Я не понимаю этого волшебного заклинания, потому что уверен, что псевдоним объекта модели (значение ключа, если используется ModelMap в качестве возвращаемого типа), переданный в представление после выполнения метода обработчика запроса. Поэтому, когда выполняется метод обработчика запросов, имя объекта модели не может быть сопоставлено с параметром метода.

Чтобы разрешить это противоречие, я пошел в stackoverflow и нашел этот подробный пример. Автор примера сказал:

// Модель "personAttribute" имеет переданы контроллеру из JSP

Похоже, он очарован ссылкой Spring ...

Чтобы развеять прелести, я развернул его пример приложения в своей среде и жестоко вырезал аннотацию @ModelAttribute из метода MainController.saveEdit () . В результате приложение работает без изменений! Итак, я делаю вывод: аннотация @ModelAttribute не требуется для передачи значений полей веб-формы в поля аргументов. Тогда я задался вопросом: что означает аннотация @ModelAttribute ? Если единственное средство - установить псевдоним для объекта модели в представлении, то почему этот способ лучше, чем явное добавление объекта в ModelMap ?

6
задан Sean Patrick Floyd 16 January 2011 в 15:35
поделиться