Error: Failed to convert property value of type java.lang.String to required type java.util.Date for property dob?
Error: Failed to convert property value of type java.lang.String to required type java.util.Date for property dob?
我正在尝试使用简单的 Spring-MVC 应用程序进行表单验证。我在从浏览器输入日期时遇到问题。错误是:
"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"
这个问题我只在 Google Chrome 浏览器中遇到。在 Internet Explorer 和 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");
我正在尝试使用简单的 Spring-MVC 应用程序进行表单验证。我在从浏览器输入日期时遇到问题。错误是:
"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"
这个问题我只在 Google Chrome 浏览器中遇到。在 Internet Explorer 和 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");