spring3.0配置日期转换可以通过配置自定义实现WebBingingInitializer接口的一个日期转换类来实现,方法如下
转换类:
public class DateConverter implements WebBindingInitializer {
public void initBinder(WebDataBinder binder, WebRequest request) {
SimpleDateFormat df = newSimpleDateFormat("yyyy-MM-dd");
binder.registerCustomEditor(Date.class, new CustomDateEditor(df, false));
}
}
在spring-servlet.xml当中的进行注册:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<!-- 日期格式转换 -->
<property name="webBindingInitializer">
<bean class="DateConverter" />
</property>
</bean>
spring3.1.1的处理进行调整,所以按照3.0的写法在3.1.1里面是无效的,正确的写法如下
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<list>
<bean
class="com.doje.XXX.web.DateConverter" />
</list>
</property>
</bean>
其中class=”com.doje.XXX.web.DateConverter” 是自定义的日期转换器类,
下一步:
需要修改spring service context xml配置文件中的annotation-driven,增加属性conversion-service指向新增的conversionService bean。
<mvc:annotation-driven conversion-service="conversionService" />
自定义的converter如下
public class DateConverter implements Converter<String, Date> {
@Override
public Date convert(String source) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
try {
return dateFormat.parse(source);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}