前言
Spring MVC
会根据请求方法签名不同,将请求消息中的信息
以一定的方式转换并绑定到请求方法的参数
中。在请求消息到达真正调用处理方法的这一段时间内,Spring MVC
还会完成很多其他的工作,包括请求信息转换
、数据转换
、数据格式化
以及数据校验
等。
6.1 数据绑定流程
Spring MVC
通过反射机制对目标处理方法的签名进行分析,并将请求消息绑定到处理方法的参数上,数据绑定的核心部件是DataBinder
.
Spring MVC
框架将ServletRequest
对象及处理方法的参数对象实例
传递给DataBinder
,DataBinder
调用装配在SpringWeb
上下文中的ConversionService
组件进行数据类型转换、数据格式化工作,并将ServletRequest
中的消息填充到参数对象中。- 然后再调用
Validator
组件对已经绑定了请求消息数据的参数对象进行数据合法性校验,并最终生成数据绑定结果BindingResult
对象。
其运行机制如下图所示BindingResult
包含已完成数据绑定的参数对象,还包含相应的校验错误对象,Spring MVC
抽取BindingResult
中的参数对象
及校验错误对象
,将它们赋给处理方法的相应参数
。
原文链接: 6.1 数据绑定流程