在上一章节中,我给大家讲解了WebDataBinder的含义及其用法,接下来我会为大家讲解WebBindingInitializer,由此来实现一个全局的数据绑定。
在Spring MVC中使用WebBindingInitializer,为每个特殊的请求初始化相应的WebDataBinder,WebBindingInitializer是可以实现全局级别的实现方案,区别于@InitBinder只对单个Controller有效。
一. WebBindingInitializer简介
在使用SpringMVC的时候,经常会遇到表单中的日期字符串和Java Bean中的Date类型转换的问题。而在SpringMVC中,默认是不支持这种转换的。所以就需要我们手动配置,设计自定义的数据绑定才能解决这个问题。
而在SpringMVC中,提供了不同的类型转换器,这些类型转换器常用于转换double、float、date等类型。SpringMVC在支持自身转换器框架的同时,也支持Java Bean的PropertyEditor。
我们可以通过在控制器中使用@InitBinder 添加Controller级别的自定义类型编辑器,也可以通过WebBindingInitializer来添加全局级别(对所有@Controller有效)的自定义类型编辑器。
二. 全局级别编辑器的实现方案
1. 需求分析
假如我们现在有这么一种情况:
前端传入的参数中,时间单位用的是unix时间戳,单位为秒,而java后端用的是Date类型。
在request请求时,如何把前端的时间戳类型优雅的转换为后端的Date类型呢?