定義一個自定義轉換器,要實現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"/>