日期型参数传递
之前我们学习的传递的参数类型都是统一的格式, 但是这里我们要说的日期型参数格式就不是统一的了, 甚至各大语言中都支持我们去指定日期型参数的格式, 各个系统上的日期型参数格式也是有差异的
- 2020-01-01
- 2020/08/18
- 08/18/2088
那么针对这种格式有差异的参数, 前后端完全是有可能格式不相同, 这样前端的数据传递到后端之后转换肯定是会失败, 那么我们要如何解决这一问题?
—> 其实解决也很简单, 我们只需要使用一个@DateTimeFormat注解即可
- 但是注意: @DateTimeFormat注解指定格式并不是用value属性, 而是使用pattern属性
我们SpringMVC接收的日期标准格式为2020/01/01这种, 如果前端传递到后端的数据是这种格式就可以直接封装到对应的控制器方法形参中(这里我们就使用不是这种标准格式的格式举例:)
后端控制器:
postman发送请求到后端:
可以看到我们发送了一个2020-01-01格式的字符串, 到了后端就会顺利的转换为对应的date
其实还有一种情况, 如果我们要将数据封装到某个实体类中, 这个时候有一个属性是日期类型, 要怎么办?
- 可能前端发送过来表单数据或者是Json数据, 那么后端要封装到实体类中, 这个时候有一项数据是日期类型, 那么我们如何做?
- —> 其实还是和上面一样, 不过这一次我们的@DateTimeFormat注解不是添加到控制器形参前面, 而是添加到对应的实体类的对应属性上了
eg:
补充: 前端传递过来的字符串转换为日期时间类型的时候其实是使用到了Converter接口实现类来完成的
- 注意: Converter接口和HttpMessageConverter接口是两码事, 两个的功能是不同的