概述:
由于SpringMVC框架只能接收指定格式的日期(yyyy-MM-dd),所有在SpringMVC获取日期之前对请求中的日期格式进行转换,方式如下:
方式一:创建数据类型转换器;
spring提供了好多转换器,这也正是SpringMVC可以自动对请求中的参数进行封装的原因,由于日期的格式太多所以spring没有提供日期类型的转换器,不过spring提供了一个供使用者创建类型转换器的接口,我们可以通过该接口创建可以转换为指定格式日期的转换器;
步骤:
1)、实现Converter<S,T>接口;
2)、重写convert方法;
3)、在convert方法中编写转换流程;
代码截图:
4)、将自定义的类型转换器添加到Spring中的转换器工厂;
代码截图:
5)、设置conversion-service属性;
代码截图:
方式二:注解
在实体bean日期属性上添加@DateTimeFormat(pattern = "yyyy-MM-dd") 注解;
方式三:
1)、在Controller层添加一个方法,方法参数为WebDataBinder类型;
2)、在方法上添加InitBinder注解;
3)、编写方法中的业务逻辑;
代码截图:
方法参数详解:
WebDataBinder:该对象中封装的是请求中的参数;
Date.class:该参数为目标类型;
new PropertiesEditor:该匿名内部类为类型转换器;
setAsText方法:该方法为对转换流程的封装;
setAsText方法参数:请求中需要转换的参数;
三种方式比较:
方式一:程序中的任何部分都可以使用;(推荐使用)
方式二:只有添加该注解的属性可以完成数据类型的转换;
方式三:只有该方法所在的Controller可以使用;