springmvc 对日期的转换与处理

一,背景

近期项目上需求还没有确定,难道清闲,对项目中不合理的地方进行一些升级改造。鉴于项目使用的技术框架比较老旧(spring 3.0+) ,一直没有对此做大的升级改造。由于之前项目入参,出参都是使用统一的map进行接收,字段使用String进行接受,导致开发人员工作时,重复代码量大,效率低下。于是做了一些优化处理,比如统一对日期进行处理。这里简单介绍对日期处理问题。

二,对前端传来的日期统一处理

2.1 编写DateConvert类

package com*.common.convert;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.convert.converter.Converter;

public class DataConvert implements  Converter<String, Date> {
    
    private static final Logger LOGGER= LoggerFactory.getLogger(DataConvert.class);
    public String  datePattern="yyyy-MM-dd HH:mm:ss";
    
    public void setDatePattern(String datePattern) {
        this.datePattern = datePattern;
    }

    @Override
    public Date convert(String source) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(datePattern);
        try {
             return simpleDateFormat.parse(source);
        } catch (ParseException e) {
            LOGGER.error("对日期进行格式转换异常!期望的格式:{}",datePattern,e);
        }

        return null;
    }

}

2.2 配置修改

    <mvc:annotation-driven conversion-service="conversionService" />
    <!-- 配置统一日期格式转换器(前端传入-后台接收处理) -->
    <bean id="conversionService"
        class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="com.winning.mmap.core.common.convert.DataConvert">
                    <property name="datePattern" value="yyyy-MM-dd HH:mm:ss" />
                </bean>
            </set>
        </property>
    </bean>

三,对返回日期格式统一处理

由于springmvc3.0.X不支持<mvc:annotation-driven/> 子标签配置,所以使用如下配置:

    <!--springmvc3.0.5对返回日期格式进行统一转换配置  -->
    <bean id="dateHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
        <property name="objectMapper">
            <bean class="org.codehaus.jackson.map.ObjectMapper">
                <property name="dateFormat">
                    <bean class="java.text.SimpleDateFormat">
                        <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />
                    </bean>
                </property>
            </bean>
        </property>
    </bean>
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="dateHttpMessageConverter"/>
            </list>
        </property>
    </bean>

当然,如果使用更高版本,配置则更为简单。

四,结语

现在流行无配置文件化开发,比如springboot开发,但几年的开发经验告诉我,配置文件使用起来也是很方便,后面会尽量使用注解合配置文件结合,进行开发工作。

希望可以遇见更好的项目,更好的技术,更好的自己。

猜你喜欢

转载自www.cnblogs.com/sloveling/p/springmvc_convert.html