Spring MVC: привязка 3 выпадающих списков к свойству даты в SimpleFormController - PullRequest
6 голосов
/ 02 октября 2008

Как настроить класс для привязки трех раскрывающихся списков (дата, месяц, год) к одному свойству Date, чтобы он работал так, как он работает для сценария «один параметр запроса на свойство»? Я думаю, что следует добавить несколько пользовательских PropertyEditors, переопределив метод initBinder. Что еще?

Ответы [ 4 ]

4 голосов
/ 06 октября 2008

Алексей Кудрявцев: вы можете переопределить метод onBind в вашем контроллере, который вы не можете использовать в объекте команды что-то особенное, например

dateField = new SimpleFormat("YYYY-mm-dd").parse(this.year + "-" + this.month + "-" this.day);

или

Calendar c = Calendar.getInstance();
c.set(year, month, day);
dateField = calendar.getTime();

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

1 голос
/ 02 октября 2008

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

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

Затем вам нужно зарегистрировать редактор свойств, который будет преобразовывать строку «2008-05-20» в объект Date.

0 голосов
/ 11 мая 2011

Я не пробовал, но вы можете попробовать связать с MutableDateTime в библиотеке Joda . Он имеет отдельные сеттеры и геттеры для всех трех полей.

0 голосов
/ 03 октября 2008

тогда у меня будет три поля в моем объекте команды - год, месяц, день и будет использоваться стандартная проверка весны для проверки даты

...