This is my Blog!!Welcome to you!!
【分享个人java学习心得和技术问题汇总】

“”字符串解析为date报错

 

Spring3MVC中Controller层接受前端页面的参数有一种情况:

 
Student 类中有如下两个属性

private String name; // 姓名
private Date registDate; // 入学时间

如果此时想修改入学时间,那么前端页面提交过来的日期必然是’2012-01-17’这样的字符串类型的日期
这个时候传入到服务器端会报一个String转成Date的类型转换错误
如果把private Date registDate改成private String registDate;就没问题
于是看了下Spring3的源码,略微做了下修改:在Spring3的core包下找到

org.springframework.core.convert.support.GenericConversionService.convert(Object, TypeDescriptor, TypeDescriptor);这个方法然后在assertNotNull(sourceType, targetType);

这个方法然后在assertNotNull(sourceType, targetType); 这句话的下面添加:

 

当然还要添加成员变量:

  1. private static final DateFormat YMD_DATETIME_FORMAT = new SimpleDateFormat(“yyyy-MM-dd”);
  2. private static final DateFormat YMDHM_DATETIME_FORMAT = new SimpleDateFormat(“yyyy-MM-dd HH:mm”);
  3. private static final DateFormat YMDHMS_DATETIME_FORMAT = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

最后重新编译打包core包
这样当遇到Date类型的时候就把数据转换成Date类型的,接下去就不会报错了

 

方法二(推荐):

之后在网上找到一个解决方法:

在配置controller的那个xml中添加如下代码:

 

这段配置最好放在其它配置的前面
WebBinding:

 

由此可见spring的扩展性还是蛮强的

spring’m’vc在对应的controller中增加属性编辑器:

未经允许不得转载:Java学习 » “”字符串解析为date报错

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址