Spring MVC:将3个下拉列表绑定到SimpleFormController中的日期属性

时间:2008-10-02 09:21:38

标签: java spring-mvc propertyeditor

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

4 个答案:

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我没有尝试过,但您可以尝试绑定到MutableDateTime in the Joda library。它为所有三个领域都有独立的制定者和吸气剂。