由前端JS传来的数据一般为字符串,当我们在后台赋予Date类型是则会报错。这是我们可以利用@InitBinder注解来注册编辑器,提前进去数据类型转换,但有时有多种情况,目前在下找到某一种解决方法一下是代码,供参考。
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormatM = new SimpleDateFormat("yyyy-MM");
SimpleDateFormat dateFormatD = new SimpleDateFormat("yyyy-MM-dd");
dateFormatM.setLenient(false); //设置是否允许自动计算日期。e.g.:输入13个月,则会抛异常;改为“true”则会自动在年上累加→1年1月
dateFormatD.setLenient(false);
binder.registerCustomEditor(Date.class,"MonthDate",new CustomDateEditor(dateFormatM, true));//第二个参数:是否允许输入空值
binder.registerCustomEditor(Date.class,"YearDate",new CustomDateEditor(dateFormatD, true));
}