我们在使用SpringMVC框架开发时,经常需要将前台的数据传递到后台进行处理,如果前台传递日期类型到后台的话,比如注册新用户需要填入出生日期等,由于日期类型比较特殊,如果接收参数为日期类型,不对日期类型作处理的话,就可能会报错误,这是因为前台传递的是字符串日期类型与后台的日期类型不能匹配造成的。
那么还有一种是从数据库获取时间后,再从后台传到前端页台进行展示的时候,在数据库中显示的是正确的时间格式,但是如果返回json数据到前台时,获取出来却变成了毫秒数。
那么如何解决在SpringMVC开发中日期参数问题呢?
下面总结归纳了解决上述问题的方法,分享给大家。
首先我们来看看当前台页面传递日期参数到后台时,如何解决呢?
方法一:在日期参数上添加
DateTimeFormat注解注意:1.导入的是java.util包下面的Date类
2.pattern=yyyy-MM-dd必须要和页面中的日期格式相对应
方法二:在Controller中添加initBinder方法
如果不想每次都是都在日期参数上面添加
DataTimeFormat注解,则使用InitBinder注解上述这种方式,需要在每个Controller中定义一个initBinder方法,这样做显然会比较麻烦,但是如果想定义一个全局的方法,更方便地解决问题,应该怎么做呢?
可以在项目里面添加一个类,然后在类上面添加
ControllerAdvice注解,这个注解是被springmvc注解解析器来解析,并将这个类放到一个可扫描到的包里去,这样就不需要在每个Controller上面添加initBinder方法了。当然还有一种解决方法就是把上面的initBinder方法写到一个父类的Controller中,然后需要处理日期参数的Controller继承这个父类也可以解决。
上面我们总结了前台传递的日期参数问题的解决办法,那么在SpringMVC开发中我们从数据库查询出数据,使用
ResponseBody向页面返回json数据时,在页面上日期格式默认显示为时间戳,那么又该如何处理呢?下面总结了处理这个问题的两种办法。方法一:在日期参数上添加
JsonFormat注解注意:1.在使用
JsonFormat注解时,首先要在项目中引入jackson的jar包2.要添加timezone时区
3.pattern时间格式要和数据库的时间格式相一致
方法二:在SpringMVC的配置文件中添加相关配置
这种方式相对第一方式比较麻烦,所以在实际开发中使用相对会比较少。
好了,上面就是在使用SpringMvc框架开发中对日期的处理,希望这次分享能给大家的学习和开发中带来帮助,也可以在下面留言交流。
转载请注明:http://www.0431gb208.com/sjszjzl/3756.html