欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Failed to convert property value of type ’java.lang.String‘ to required type ‘java.util.Date’…

程序员文章站 2024-01-14 16:39:52
...
Failed to convert property value of type ’java.lang.String‘ to required type ‘java.util.Date’…
问题描述
  • 在日期对应属性上添加注解,JsonFormat能有用,数据从前端传输到后端时,无法识别DateTimeFormat失效
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    
    后台错误展示

Failed to convert property value of type ’java.lang.String‘ to required type ‘java.util.Date’…

解决方法一:
  • Spring3.0以上的SimpleFormController 已经过时了,最新方式是使用@InitBinder注解的方式在对应的Controller控制器中
 @InitBinder
    protected void init(HttpServletRequest request, ServletRequestDataBinder binder) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        dateFormat.setLenient(false);
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
    }
解决方法二:
  • 在对应的pojo中重写属性的get方法
public void setBtime(Date btime) {
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
        String dateStr=simpleDateFormat.format(btime);
        java.sql.Date sqlDate=null;

        long time = 0;
        try {
            time = simpleDateFormat.parse(dateStr).getTime();
        } catch (ParseException e) {
            e.printStackTrace();
        }
        sqlDate=new  java.sql.Date(time);
        this.btime = sqlDate;
    }