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

有帮助吗?

解决方案

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中进行验证并使用一些可用的日期选择器组件,其中有很多...

其他提示

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

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

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

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

我还没试过,但你可以尝试绑定 Joda库中的MutableDateTime 。它为所有三个领域都有独立的制定者和吸气剂。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top