Failed to convert from type [java.lang.String] to type [java.util.Date]

最近在写一个springboot项目的时候出现了这个问题,问题出现的原因就是后台传过来的值是json格式(字符串),后台无法将字符串解析成时间格式对象。

解决代码如下,在controller层里使用@InitBinder注解的方法,配合参数转换工具WebDataBinder使用就可以了

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

@InitBinder注解可以作用在被@Controller注解的类的方法上,表示为当前控制器注册一个属性编辑器,用于对WebDataBinder进行初始化,且只对当前的Controller有效。
WebDataBinder是用来绑定请求参数到指定的属性编辑器.由于前台传到controller里的值是String类型的,当往Model里Set这个值的时候,如果set的这个属性是个对象,Spring就会去找到对应的editor进行转换,然后再SET进去。

你可能感兴趣的:(java开发中遇到的问题,java,开发语言,jar)