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 {

    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)将写好的类型转换器配置到配置文件中


      

      
      
            
                  
                        
                  
            
      

      

 

你可能感兴趣的:(Spring)