zoukankan      html  css  js  c++  java
  • 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开发,但几年的开发经验告诉我,配置文件使用起来也是很方便,后面会尽量使用注解合配置文件结合,进行开发工作。

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

  • 相关阅读:
    作业一:淘宝的创新点
    asp.net面试题130道
    windows7系统下怎么将“我的电脑”图标添加到任务栏
    用jquery控制html控件
    C# windows窗口项目
    无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它
    c#用反射动态获取类型
    C# 提取逗号分割的字符串
    搜索框动态匹配——前端方式(只在页面加载时从后端获取一次数据)(推荐)
    汉字转拼音的代码——(js版)
  • 原文地址:https://www.cnblogs.com/sloveling/p/springmvc_convert.html
Copyright © 2011-2022 走看看