SpringMVC配置全局日期转换器

来源:互联网 发布:mysql转换日期格式 编辑:程序博客网 时间:2024/05/20 07:32

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;        }