springMVC Controller 参数bean中Date类型属性的赋值问题

来源:互联网 发布:屏幕触摸检测软件 编辑:程序博客网 时间:2024/05/27 19:28

我们在使用SpringMVC时,常常需要把表单中的参数映射到Controller参数bean对象的属性中,但是spring没有提供String转Date的转换器,这就导致spring遇到这种情况时,会使用ObjectToObecjectConverter去处理,直接使用new Date(String originalValue),但是我们知道,java中new Date(String)这个方法是弃用的,如new Date("Thu Mar 17 00:00:00 CST 2016")会变为2016-3-17 14:00:00,导致数据错乱。

解决办法一:创建自定义转换器

可参考:http://manzhizhen.iteye.com/blog/2218996

解决办法二:重写Controller的InitBinder方法

@InitBinderpublic void InitBinder(WebDataBinder dataBinder) {SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");dateFormat.setLenient(false);dataBinder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));}
本人暂时使用第二种方法。

1 0