Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring MVC:将3个下拉列表绑定到SimpleFormController中的日期属性_Java_Spring Mvc_Propertyeditor - Fatal编程技术网

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

Java Spring MVC:将3个下拉列表绑定到SimpleFormController中的日期属性,java,spring-mvc,propertyeditor,Java,Spring Mvc,Propertyeditor,我应该如何配置该类以将三个下拉列表(日期、月份、年份)绑定到单个日期属性,从而使其工作方式与“每个属性一个请求参数”场景相同? 我想a应该通过重写initBinder方法添加一些自定义属性编辑器。还有什么?您可以在表单中创建一个隐藏输入,并在用户选择日期时使用JavaScript填充它,然后绑定到命令对象中的该输入 也许您无论如何都会使用javascript来检查日期的正确性,所以为什么不在一个参数中设置就绪日期的格式呢 然后,您需要注册一个属性编辑器,该编辑器将从字符串“2008-05-20”

我应该如何配置该类以将三个下拉列表(日期、月份、年份)绑定到单个日期属性,从而使其工作方式与“每个属性一个请求参数”场景相同?
我想a应该通过重写initBinder方法添加一些自定义属性编辑器。还有什么?

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

也许您无论如何都会使用javascript来检查日期的正确性,所以为什么不在一个参数中设置就绪日期的格式呢


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

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

Aleksey Kudryavtsev:您可以覆盖控制器中的onBind方法,我知道你不能在命令对象中摆弄一些特殊的东西,比如

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


但我更愿意用javascript进行验证,并使用一些可用的日期选择器组件,它们有很多…

我还没有尝试过,但您可以尝试绑定到。这三个字段都有单独的setter和getter。

谢谢您的回答。这是个好主意。但是,有没有一种方法可以在服务器端执行此操作?如何将这三个字段转换为日期属性?
Calendar c = Calendar.getInstance();
c.set(year, month, day);
dateField = calendar.getTime();