Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for pr

Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property XXX

原因:我的Controller中需要接收的是Date类型,但是在页面传过来的时间是String类型。前端表单包含时间的字符串传进去,转换成日期时报错了

解决:在Controller中加入

    @InitBinder   
    public void initBinder(WebDataBinder binder) {   
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");   
        dateFormat.setLenient(true);   
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));   
    }  

或者

@InitBinder
protected void initBinder(WebDataBinder binder) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}

参考:

https://stackoverflow.com/questions/23702041/failed-to-convert-property-value-of-type-java-lang-string-to-required-type-java

https://blog.csdn.net/lufeng20/article/details/7761689

猜你喜欢

转载自my.oschina.net/anlve/blog/1824476