我们在SpringMVC开发中,可能遇到比较多的问题就是前台与后台实体类之间日期转换处理的问题了,但很多人开发中经常会遇到这个问题,有时很令人头疼,有时候问题暴露的不是很明显,然后逐渐对问题进行跟踪,会发现是日期类型转换失败“映射”不到对应的持久类的日期属性上造成的。
解决问题方法如下:
方法一:实体类中加日期格式化注解
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- private Date receiveAppTime;
如上,在对应的属性上,加上指定日期格式的注解,轻松解决问题!如前台传递的时间格式是yyyy-MM-dd HH:mm:ss,后台解析时候必须按照对象的格式解析,如解析格式为yyyy-MM-dd HH:mm时,就会解析错误,切记
方法二:控制器Controller中加入一段数据绑定代码
- @InitBinder
- public void initBinder(WebDataBinder binder) {
- //这里的格式需要和前端的格式必须一一对应,否则仍然无法绑定数据
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
- dateFormat.setLenient(false);
- binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); //true:允许输入空值,false:不能为空