SpringMVC会根据请求方法签名不同,将请求信息中的信息以一定的方式转换并绑定到请求方法的参数中。在请求消息到达真正调用处理方法的这一段时间内,SpringMVC还会完成很多其他的工作,包括请求信息转换、数据转换、数据格式化以及数据校验等。
一、数据绑定
数据绑定的核心部件是DataBinder,SpringMVC框架将ServletRequest对象及处理方法的参数对象实例传递给DataBinder,DataBinder调用装配在SpringWeb上下文中的ConversionService组件进行数据类型转换、数据格式化工作,并将ServletRequest中的消息填充到参数对象中。然后再调用Validator组件对已经绑定了请求消息数据的参数对象进行数据合法性效验,并最终生成数据绑定结果BindingResult对象。BindingResult包含已经完成数据绑定的参数对象,还包含相应的校验错误对象,SpringMVC抽取BindingResult中的参数对象及校验错误对象,将它们赋给处理方法的相应参数。
二、数据转换
在Java语言中,在java.beans包中提供了一个PropertyEditor接口来进行数据转换。PropertyEditor的核心功能是将一个字符串为一个Java对象,以便根据界面的输入或配置文件中的配置字符串构造出一个Java对象。
三、数据格式化
Spring使用Converter转换器进行源类型对象到目标类型对象的转换,Spring的转换器并不承担输入以及输出信息格式化的工作。
四、数据校验
一个健壮的应用系统必须将这些非法输入阻止在应用之外,防止一些非法输入阻止在应用之外,防止一些非法输入进入系统,这样才可以保证不受影响。