что делает условия formBackingObject и ModelAttribute означают в Spring MVC?

Пуристское OO путь состоит в том, чтобы избежать обоих и следовать , Закон Demeter при помощи эти Говорит, не Спрашивают подход.

Вместо того, чтобы получить значение свойства объекта, которое сильно связывает два класса, используют объект в качестве параметра, например,

  doSomethingWithProperty() {
     doSomethingWith( this.property ) ;
  }

, Где свойство было собственным типом, например, интервалом, используйте метод доступа, назовите его для проблемной области не доменом программирования.

  doSomethingWithProperty( this.daysPerWeek() ) ;

Они позволят Вам поддерживать инкапсуляцию и любые постусловия или зависимые инварианты. Можно также использовать метод установщика поддержать любые предварительные условия или зависимые инварианты, однако не попадите в прерывание именования их методы set, вернитесь к голливудскому Принципу для именования при использовании идиомы.

5
задан user198530 29 October 2009 в 00:17
поделиться

1 ответ

Хороший вопрос. Это сводится к различию в терминологии между Spring 2.0 MVC, в котором используется иерархия классов контроллера, и Spring 2.5 MVC, в котором используются аннотации.

«Объект поддержки формы» - это объект в стиле Spring 2.0 AbstractFormController (и подклассы вроде SimpleFormController ) будут использовать для привязки данных формы к.

@ModelAttribute делает то же самое для аннотированных контроллеров в стиле Spring 2.5, но в менее жесткий способ.

Итак, вы правы в том, что эти двое делают почти одно и то же, но стиль на самом деле совершенно другой. Оба являются допустимыми подходами, и оба поддерживаются в Spring 2.5 (и 3.0).

8
ответ дан 14 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: