admin管理员组

文章数量:1538169

第一步:自创建StringToDateConverter.java类,实现Converter转换接口,重写convert()方法。
import org.springframework.core.convert.converter.Converter; 接口

/**
 * 自定义格式转换器
 * **/
public class StringToDateConverter implements Converter<String,Date> {
    private String dataPattern;
    public StringToDateConverter(String dataPattern){
        this.dataPattern = dataPattern;
    }
    @Override
    public Date convert(String s) {
        Date date = null;
        try {
            date = new SimpleDateFormat(dataPattern).parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }
}

第二步:装配自定义转换器
在配置文件配置:

  <!-- 配置扫描注解的包 -->
    <context:component-scan base-package="cn.kgc.controller,cn.kgc.pojo" />

    <!-- 自定义格式转换器 -->
    <bean id="myConversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <!--引入多个自定义的转换器-->
        <property name="converters">
            <list>
                <!--引入自定义的StringToDateConverter转换器-->
                <bean class="cn.kgc.util.StringToDateConverter">
                    <!--构造注入字符串日期格式-->
                    <constructor-arg type="java.lang.String" value="yyyy-MM-dd"/>
                </bean>
            </list>
        </property>
    </bean>
    
   
            
    <mvc:annotation-driven conversion-service="myConversionService">
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <!--设置消息处理器的编码格式-->
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
         </mvc:message-converters>
    </mvc:annotation-driven>

conversion-service="myConversionService,指定自定义转换器覆盖默认的转换器,
就不需要在javaBean日期属性上用@DateTimeFormat(pattern = “yyyy-MM-dd”)注解了

本文标签: 自定义转换器日期格式