6

我应该如何配置该类以将三个下拉列表(日期、月份、年份)绑定到单个 Date 属性,以便它按照“每个属性的单个请求参数”方案的工作方式工作?我想应该通过覆盖 initBinder 方法来添加一些自定义的 PropertyEditors。还有什么 ?

4

4 回答 4

4

Aleksey Kudryavtsev:你可以在你的控制器中重写 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 中进行验证并使用一些可用的日期选择器组件,它们有很多......

于 2008-10-06T10:10:19.077 回答
1

您可以在表单中创建一个隐藏输入,并在用户选择日期时使用 JavaScript 填充它,然后在命令对象中绑定到此输入。

无论如何,您可能会使用 javascript 来检查日期的正确性,所以为什么不在一个参数中格式化准备使用的日期。

然后您需要注册一个属性编辑器,它将字符串“2008-05-20”转换为 Date 对象。

于 2008-10-02T09:34:44.790 回答
0

然后我将在我的命令对象中有三个字段 - 年、月、日,并将使用标准弹簧验证进行日期检查

于 2008-10-03T06:58:16.030 回答
0

我没试过,但你可以尝试绑定到Joda library 中的 MutableDateTime。它对所有三个字段都有单独的 setter 和 getter。

于 2011-05-11T15:13:05.533 回答