Как мне сопоставить модельные компоненты для просмотра модельных компонентов в Spring MVC?
В моем приложении Spring MVC у нас есть объекты форм, которые отображаются <form:form
тег в JSP. Эти объекты отделены от моей обычной модели bean-компонентов и действительно образуют своего рода модель представления. Трудность с этими объектами заключается в отображении между этими объектами и фактическими компонентами модели, ожидаемыми объектами службы. В настоящее время мы вручную пишем формы отображения кода в bean-компоненты и наоборот в контроллерах. Это менее чем оптимально из-за количества дополнительного кода, который требуется. Другие варианты, которые мы рассмотрели:
- Напишите класс отображения. Это по-прежнему требует написания кода вручную, но по крайней мере его нет в контроллере.
- Автоматически генерировать класс сопоставления. Предположительно, для этого потребуется вручную создать и обновить какой-либо файл сопоставления.
- Назовите свойства в бобах и формах одинаковыми и используйте Spring
BeanUtils.copyProperties
перемещать их взад и вперед. Это кажется плохим, потому что это не является очевидной ссылкой, что может привести к странному поведению во время выполнения, если оно не поддерживается согласованным. - Напишите объект формы как фасад, который хранит бин внутри и обновляет его.
Каков наилучший метод для долгосрочного здоровья проекта выполнения этого действия?
1 ответ
Я предлагаю вам использовать dozer framework для сопоставления доменных объектов и просмотра объекта друг другу. Единственная проблема - вам все равно придется создавать класс представления вручную. Вы также можете автоматизировать это с помощью генерации кода.