Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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.lang.String类型的属性值转换为属性dob所需的java.util.Date类型?_Java_Spring_Google Chrome_Spring Mvc - Fatal编程技术网

错误:无法将java.lang.String类型的属性值转换为属性dob所需的java.util.Date类型?

错误:无法将java.lang.String类型的属性值转换为属性dob所需的java.util.Date类型?,java,spring,google-chrome,spring-mvc,Java,Spring,Google Chrome,Spring Mvc,我正在尝试使用简单的SpringMVC应用程序进行表单验证。我在从浏览器获取日期输入时遇到问题。错误是: "Failed to convert property value of type java.lang.String to required type java.util.Date for property dob; nested exception is java.lang.IllegalArgumentException: Could not parse date: Unparseab

我正在尝试使用简单的SpringMVC应用程序进行表单验证。我在从浏览器获取日期输入时遇到问题。错误是:

"Failed to convert property value of type java.lang.String to required type java.util.Date for property dob; 
nested exception is java.lang.IllegalArgumentException: Could not parse date: Unparseable date: "2015-12-25"
这个问题我只在谷歌Chrome浏览器中面临。在internetexplorer和eclipse界面中,它工作良好。我使用的是Chrome-40.0.2214.115m

我在这里分享我的部分代码:

从控制器文件:

...
@InitBinder     
public void initBinder(WebDataBinder binder){
     SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
     binder.registerCustomEditor(Date.class,new CustomDateEditor(dateFormat, false));   
}
...
从JSP文件:

...
<tr>
<td><label for="dob">DOB</label></td>
<td><input type="date" name="dob" /></td>
<td><form:errors path="person1.dob" /></td>
</tr>
...
。。。
出生日期
...

如果浏览器兼容性有问题,那么解决方案是什么?请帮助我解决此问题。

输入标记日期格式始终类似于
YYYY-MM-DD
。因此,使用此
yyyy-MM-dd
将格式设置为
SimpleDateFormat
,同时更改格式模式

试试这个

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

您的
initBinder
方法期望一个包含solidus(
/
)字符的日期,而您已经向它输入了一个包含连字符的日期。修复输入,或更改预期格式以匹配它。怀疑您必须执行后一种操作,可能需要一些浏览器检测。。。或者,如果第一种格式失败,请尝试另一种格式。@JonK Hi我没有以(..-..-..)的格式提供输入。在错误消息中,仅其显示方式与此类似错误消息告诉您它试图解析的内容失败-以连字符分隔的日期是您的
initBinder
方法在chrome中接收到的日期仅其显示问题:(如果您确定错误仅显示在Chrome浏览器中,而不显示在其他浏览器中,同时使用相同的输入,这将表明其他浏览器中存在错误。感谢Harshal…它现在正在工作:)但我不明白..在获取输入时(通过日历界面)yts采用d格式…./../....,并在….-..中显示。。。。format@Madhusudan带有/的格式仅适用于ui,但实际值的格式为-格式,符合标记标准