日期时间转换器
数据库中的日期时间格式: yyyy-MM-dd HH:mm:ss datetime类型
实体类的日期时间类型: java.util.Date
问题描述:
从页面将日期时间传递到handler, handler中得到的是String类型, 这时候就会发生时间类型不匹配的异常
解决方法: 定义一个日期时间转换器
1. 创建类DateConvertor.java
1 package com.itcast.ssm.util; 2 3 import java.text.ParseException; 4 import java.text.SimpleDateFormat; 5 import java.util.Date; 6 import org.springframework.core.convert.converter.Converter; 7 8 public class DateConvertor implements Converter<String, Date> { 9 10 // String型日期时间格式转换成Date型 11 @Override 12 public Date convert(String time) { 13 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 14 Date date = null; 15 try { 16 date = sdf.parse(time); 17 } catch (ParseException e) { 18 e.printStackTrace(); 19 } 20 return date; 21 } 22 23 }
2. 在springmvc.xml中配置注册该转换器
1 <mvc:annotation-driven conversion-service="conversionService"/> 2 <!-- 日期时间转换器 --> 3 <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> 4 <property name="converters"> 5 <list> 6 <bean class="com.itcast.ssm.util.DateConvertor"/> 7 </list> 8 </property> 9 </bean>
这样, springmvc的ioc容器会自动识别到, 当页面将时间字符串传递到handler时, 转换器会将String型的时间转换成自定义格式的Date型时间
除了以上的方法之外, 还可以使用org.springframework.web.bind.support.ConfigurableWebBindingInitializer进行绑定