SpringMVC通过反射机制对目标处理方法的签名进行分析,并将请求消息绑定到处理方法的参数中.数据绑定的核心部件是DataBinder,其运行机制如下图所示:
SpringMVC框架将ServletRequest对象及处理方法的参数对象实例传递给DataBinder,DataBinder调用装配在SpringWeb上下文中的ConversionService组件进行数据类型转换,数据格式化工作,并将ServletRequest中的消息填充到参数对象中.然后再调用Validator组件对已经绑定了请求消息数据的参数对象进行数据合法性校验,并最终生成数据绑定结果BindingResult对象.BindingResult包含已完成数据绑定的参数对象,还包含相应的校验错误对象,SpringMVC抽取BindingResult中的参数对象及校验错误对象,将他们赋值给处理方法的相应参数.