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



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

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"转换为Date对象。

那么我的命令对象中将有三个字段 - 年,月,日,并使用标准春季验证进行日期检查

我还没有尝试过,但你可以尝试绑定到 Joda 库中的 MutableDateTime。它为所有三个领域都有单独的二传手和吸水手。

相关内容

  • 没有找到相关文章

最新更新