错误:无法将java.lang.String类型的属性值转换为属性dob所需的java.util.Date类型?
我正在尝试使用简单的SpringMVC应用程序进行表单验证。我在从浏览器获取日期输入时遇到问题。错误是:错误:无法将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
"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,但实际值的格式为-格式,符合标记标准