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

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")
    
    后台错误展示

在这里插入图片描述

解决方法一:
  • 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;
    }
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值