Spring 2.5 - что должен возвращать контроллер?
В предидущих статьях мы разбирались с описанием контроллеров с помощью аннотаций. Тогда контроллеры возвращали объекты ModelAndView. Но в Spring 2.5 контроллер может возвращать не только объекты этого типа.
Итак, что может вовращать обработчик запроса?
1) Объект типа ModelAndView. Этот вариант мы уже обсуждали….
2) Модель. Этот вариант удобен, если для вашей странцы необходим только один объект, пердставляющий форму. Имя jsp страницы определяется из запроса. Например, если выполняется запрос /persons_model.html, то будет производится поиск persons_model.jsp. На этой странице, вы можете получить доступ к модели через переменную, имя которой соответствует названию класса модели, начинающегося с симовола нижнего регистра. Например, если мы возвращаем объект класса Person, то на jsp мы его увидим как ${person}.
3) Карта. В этом случае, требуемая jsp-страница определяется также, как и в случае с моделью. Отличие состоит только в том, что доступ к объектам, содержащимся в карте, осуществляется через переменные, имена которых совпадают с ключами значений в карте.
4) Вид - объекты, реализующие интерфейс View. Например, это может быть RedirectView.
5) void. В этом случае, метод должен сам позаботится об ответе. Для этого, как минимум, он должен получить объект HttpServletResponse. Стоит отметить, что методы-обработчики также могут получать определенный набор параметров, порядок которых (за некоторым исключением) не имеет значения.

21 Окт 2008 в 6:05 пп
[...] У контроллера обязательно должен быть конструктор, принимающий хотя бы один аргумент. В данном случае, в него передается бин properties, прописанный в dispatcher-servlet.xml. Метод hello() выполняет те же действия, что и метод HandleRequestInternal(…) из предыдущего примера. Кроме того, метод hello() может принимать и возвращать различные виды объектов. Подробнее об этом написано здесь. [...]