spring mvc数据绑定
spring mvc通过反射机制对目标方法的签名进行分析,将请求消息绑定到处理方法入参中。
数据绑定的核心部件是DataBinder。
spring
mvc主框架将servletRequest对象及处理方法入参对象实例传递给DataBinder,DataBinder调用装配在spring
mvc上下文中的ConversionService组件进行数据类型转换,数据格式化的工作,将servletRequest中的消息填充到入参对象中,然后再调用Validator组件对已绑定了请求消息数据的入参对象进行数据合法性检验,并最终生成数据绑定结果BindingResult对象,BindingResult包含了已完成数据绑定的入参对象,还包含相应的校验错误对象。
数据转换
conversionService是spring类型转换体系的核心接口,位于org.springframework.core.convert包中,可以利用org.springframework.context.support.ConversionServiceFactoryBean在spring上下文中定义一个ConversionSerivce。spring
自动识别出上下文中的ConversionService,并在Bean属性配置及springmvc处理方法入参绑定等场合使用它进行数据的转换。
class="org.springframework.context.support.ConversionServiceFactoryBean"/>
该FactoryBean创建ConversionSerivce内建了很多转换器,可通过该FactoryBean的convertors属性注册自定义的类型转换器
class="org.springframework.context.support.ConversionServiceFactoryBean">