当我们在前台使用时间控件传一个类似yyyy-MM-dd HH:mm:ss的字符串时,后台实体使用Date类型是获取不到的,要转。那么如何使用springmvc自动转?
首先写一个实现类,实现spring的Converter接口,如:
public class StringToDateConverter implements Converter<String, Date> {
private String datePattern;
public StringToDateConverter(String datePattern) {
this.datePattern = datePattern;
}
@Override
public Date convert(String dateString) {
Date date = null;
try {
date = new SimpleDateFormat(datePattern).parse(dateString);
} catch (Exception e) {
e.printStackTrace();
}
return date;
}
}
其次,在spring父容器的配置文件中添加bean,如:
<bean id="stringToDateConverter" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="xxx(包名).StringToDateConverter" >
<constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss"></constructor-arg>
</bean>
</list>
</property>
</bean>
最后修改spring子容器配置文件中的<mvc:annotation-driven conversion-service="stringToDateConverter">,其中stringToDateConverter就是前面那个bean的id
其实使用@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")就可以了。