SpringMVC自定义日期类型转换器

1.为什么需要自定义日期类型转换器?

在控制器接收客户端请求参数,客户端请求的数据是字符串类型

我们之所以可以使用int、double类型接收是因为框架内部类型转换器

springMVC关于时间类型转换并不很好,需要我们自己手动类型转换

2.自定义日期类型转换器的步骤:

(1)自定义一个DateConverter实现Converter接口,实现其中的convert方法

import org.springframework.core.convert.converter.Converter;

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


/**
 * 第一个泛型代表接受的数据类型
 * 第二个泛型代表想要转换的数据类型
 * 写完自定义类型转换器要配置到配置文件中
 * 程序运行会自动执行这个类型转换器,如果客户端发送的是字符串类型,经过这个转换器就会转换为日期类型
 */
public class DateConverter implements Converter<String,Date> {

    private static String[] patterns={"yyyy-MM-dd hh:mm:ss","yyyy-MM-dd","yyyy年MM月dd日"};

    @Override
    public Date convert(String s) {
        Date d = null;
        for (String p:patterns){
            SimpleDateFormat sdf = new SimpleDateFormat(p);
            try {
                d = sdf.parse(s);
                return d;
            } catch (ParseException e) {
                continue;
            }
        }
        return d;
    }
}

(2)将写好的类型转换器配置到配置文件中

<!--1.将自定义时间类型转换器交个spring工厂管理-->
      <bean id="dateConverter" class="com.baizhi.converter.DateConverter"/>

      <!--2.将自定义的类型转换器,加入到springmvc框架中本身的转换器
            springmvc本身已经存在一些类型转换器(string->int),将我们的转换器加入到里面
      -->
      <bean id="conversionService2"
            class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
            <property name="converters">
                  <set>
                        <ref bean="dateConverter"/>
                  </set>
            </property>
      </bean>
<mvc:annotation-driven conversion-service="conversionService2">
      </mvc:annotation-driven>

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值