Контроллер формы весны (например, SimpleFormController
или BaseCommandController
) использует команды для передачи данных между формой HTML и контроллером. Мой вопрос заключается в том, является ли распространенной практикой использовать модель поддержки как сама команда? Или, как правило, создается отдельная команда с соответствующими атрибутами для тех, которые содержатся в модели подстановки.Команда команды «Назначение весны»
Моя проблема заключается в том, что для использования модели подстановки в качестве команды необходимы редакторы свойств для преобразования нестроковых атрибутов. Представьте себе модель данных со многими нестрочными строго типизированными настраиваемыми типами полей. При отправке формы редактор свойств выполняет преобразование перед вызовом валидатора. Если преобразование типа невозможно (ошибка ввода пользователем), тогда валидатор никогда не получит возможность предоставить подробное сообщение об ошибке. Все, что отображается в форме HTML, является общим сообщением об ошибке. См. Мой related Stackoverflow question.
Альтернативой является создание отдельной команды, которая дублирует каждое поле в модели подкачки, но как строку. Таким образом, валидатор может проверить строковое представление каждого поля. Затем контроллер onSubmit
отвечает за преобразование текстовой команды в базовую модель. Из моего исследования Spring это, по-видимому, предназначено для использования. Мое желание идти по этому пути - громоздкий способ, которым необходимо создать отдельную команду для каждой модели данных. Тогда есть дополнительная работа, связанная с маршалированием между командой и моделью данных. Намного удобнее иметь форму, непосредственно изменяющую модель поддержки и использование редакторов свойств для преобразования. Тогда проблема заключается в проверке.
Так что мне любопытно, как другие подходят к проблеме редактирования на основе форм моделей, которые содержат настраиваемые нестрочные поля.