SpringMVC配置全域性日期轉換器
阿新 • • 發佈:2019-01-05
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;
}