Передача объекта команды из SimpleFormController в контроллер - PullRequest
1 голос
/ 22 февраля 2012

У меня есть требование, где мне нужно передать объект команды в Spring MVC из SimpleFormController в контроллер (это контроллер, который реализует интерфейс контроллера). Версия Spring - 2.5, а конфигурация основана на XML.

Из SimpleFormController выполняется переадресация в контроллер. Тем не менее, вызов $ {command.myVal} возвращает ноль, даже если я добавил session = "true" в jsp, на который указывает контроллер.

Код перенаправления в SimpleFormController:

return new ModelAndView("redirect:/SimpleController.do");

Для SimpleFormController для свойства sessionForm установлено значение true в spring.xml

<property name="sessionForm"><value>true</value></property>

Чтобы решить эту проблему, мне пришлось явно добавить объект команды в SimpleFormController в HttpSession:

 HttpSession session = request.getSession(true);
 session.setAttribute("command", commandObj);

А в Simplecontroller мне пришлось создать карту String для Obj и передать ее в View. Здесь я снова взял команду Obj из сеанса.

HttpSession session = request.getSession(true);
resultMap.put("command", session.getAttribute("command"));

Пожалуйста, предложите, если есть лучший способ без использования аннотаций. Это как-то кажется многословным способом получения результата.

1 Ответ

0 голосов
/ 22 февраля 2012

Чтобы Spring мог проанализировать объект команды, вам нужно отправить форму непосредственно в контроллер, который расширяет BaseCommandController.

http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/web/servlet/mvc/BaseCommandController.html

Если ваш SimpleFormController сам получил отправку формызатем вы можете сохранить команду в сеансе для использования Контроллером.

(и, конечно, все это станет проще, если вы будете использовать основанный на аннотациях подход к Spring MVC)

Hopeэто помогает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...