Ответ 1
Я всегда использую подход, в котором методы контроллера возвращаются ModelAndView
. Просто потому, что он, как правило, делает методы контроллера немного более краткими. Параметры метода теперь строго input
. И все связанные данные output
содержатся в объекте, возвращаемом методом.
Стиль ModelAndView
, похоже, резонирует с людьми, которым не нравится обновлять входные параметры для метода. Придерживаясь убеждения, что это будет представлять собой побочный эффект, опасный шаблон, потому что вы не можете надежно предсказать, что будет делать этот метод, - он может возвращать данные в возвращаемом объекте, или он мог бы обновить что-либо в любом из входных аргументов.
Итак, некоторые люди по-прежнему предпочитают ModelAndView
.
Новый стиль с Model
как параметр метода и возвращаемая строка в качестве имени представления. Кажется, это исходит из немного другого подхода к дизайну. Здесь объекты модели считаются разновидностью событий или элементов, которые передаются нескольким обработчикам, перед возвратом в представление, где они отображаются. Это напоминает мне, как события обрабатываются в мире AWT/Swing. Эта модель более согласована с подходом, в котором несколько обработчиков могут строиться поверх объектов Model
, пока не достигнут вид.
Таким образом, в конце дня, похоже, нет определенной причины критиковать или продвигать любой подход. Вы должны использовать стиль, который будет более соответствовать вашей общей философии дизайна.
Надеюсь, что это поможет.