Как Spring 2.5 отображает данные входящего запроса в команду ModelAttribute? - PullRequest
0 голосов
/ 07 января 2009

Я использовал Spring 2.0 и теперь я использую Spring 2.5 Естественно, Spring 2.5 сделал жизнь очень простой, что касается веб-контроллеров. У меня постоянно возникает вопрос, что в 2.0 нам нужно было установить класс команды и, соответственно, AbstractFormController, используемый для заполнения этого объекта команды для нас. В Spring 2.5 мы этого не делаем, так как же узнать, какой класс использовать? Зависит ли это от типа параметра, который мы аннотировали @ModelAttribute ("command")?

Если да, то, пожалуйста, сообщите мне любой класс "Utils", который предоставляет точный механизм, в котором я могу передать HttpRequest и имя класса (или объект Class), и который вернул бы мне заполненный объект!

Надеюсь, вы получили мой вопрос.

Заранее спасибо.

1 Ответ

3 голосов
/ 07 января 2009

Привязка к аннотациям Web MVC в конечном итоге основывается на

org.springframework.beans.AbstractPropertyAccessor

, который имеет две конкретные реализации:

org.springframework.beans.BeanWrapperImpl org.springframework.beans.DirectFieldAccessor

Оба принимают объект Java, который будет целью для установки свойств.

Во-первых, BeanWrapperImpl использует методы установки / получения объекта java, в то время как другой устанавливает поля напрямую. Оба проверяют, что методы / поля являются общедоступными / доступными, и, в противном случае, используют setAccessible (true) отражения, чтобы убедиться, что его можно установить.

Из Web MVC создается экземпляр AbstractPropertyAccessor, и карта параметров HttpRequest передается в AbstractPropertyAccessor # setPropertyValues.

После вызова java-объект заполняется всем, что находится на карте

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