定义一个自定义转换器,要实现Converter接口
package com.mingde.converter;
import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import org.springframework.core.convert.converter.Converter;
public class DateConterver implements Converter<String, Date> { //参数一:是要被转换的类型,参数二:是最终转换成的类型
//日期转换器(将前台传入进来的日期型进行转换(如:添加和修改时用到))
@Override
public Date convert(String str) { //str是从前台的文本框拿来的数据,默认String型
try {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
java.util.Date parse = sdf.parse(str); //将String型的日期通过SimpleDateFormat转换为默认的util.date型
return new java.sql.Date(parse.getTime()); //再通过.getTime()方法将其转换成long型,然后new一个sql.date,这样就是数据库类型的日期了
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}
这里一般是为了实现实体类po里的日期类型,如:birth是sql.Date类型,那么在实现add添加该属性时,由于从前台的文本框传到后台时,birth是Stirng类型,所以需要转换器将其转换为原来的sql.Date类型,这样就可以直接将其添加到数据库了
转换器配置
<!-- 配置日期转换器 -->
<bean id="DateConverter" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<!-- 这里的class为上面的自定义转换器类的路径 -->
<list> <bean class="com.mingde.converter.DateConterver"/></list>
</property>
</bean>
<!-- 引用转换器 -->
<mvc:annotation-driven conversion-service="DateConverter"/>