Spring MVC日期格式

Spring MVC日期时间格式解决

前言

spring MVC并没有给出事件类型的解决方法,需要程序员自己配置。

参数绑定原理回顾

首先了解一下参数绑定的原理:HandlerAdapter会首先把请求参数拿到Spring MVC内置的各种类型转换器对参数进行转换,将String转换成绑定的参数类型,注意名字要对应(但是时间类型需要自己解决)

日期时间件类型设计原则及流程

原则:

  • 不让用户自由输入

流程:

  1. 实现converter包下的Converter接口
  2. 导入日期时间类型响应的包(建议JDK1.8以上使用LocalDateTime,老的Date很多方法已被弃用)
  3. 先判断填入的信息是否为空,不为空才执行转换。
1
if(date!=null || !"".equals(date)){
2
    ......
3
}
  1. 指定转换格式,用trycatch包裹起来

源码参考

1
@Configuration
2
public class MappingConverterAdapter {
3
    /***
4
     * 日期参数接收转换器,将json字符串转为日期类型
5
     * @return
6
     */
7
   @Bean
8
    public Converter<String, LocalDateTime> LocalDateTimeConvert() {
9
        return new Converter<String, LocalDateTime>() {
10
            @Override
11
            public LocalDateTime convert(String source) {
12
 
13
                DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
14
                LocalDateTime date = null;
15
                try {
16
                    date = LocalDateTime.parse((String) source,df);
17
                } catch (Exception e) {
18
                    e.printStackTrace();
19
                }
20
                return date;
21
            }
22
        };
23
    }

装配转换器

1
2