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開發,但幾年的開發經驗告訴我,配置文件使用起來也是很方便,后面會盡量使用注解合配置文件結合,進行開發工作。

希望可以遇見更好的項目,更好的技術,更好的自己。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM