当用户在Spring MVC Web应用程序的上下文中请求某个URL时,我开始理解后台发生的一些事情。 但我无法弄清楚何时以及如何进行数据绑定,即输入表单的字段与模型对象之间的映射以及稍后在相关处理程序方法中注入该对象。
任何人都知道暗示了哪些类和方法,以及它在文档中出现在哪里?
答案 0 :(得分:14)
例如,如果您向此处理程序发布代表SomeBean
的数据:public void (SomeBean someBean)
,则会在Spring 4中发生以下情况。
InvocableHandlerMethod
会迭代方法的参数,并会要求HandlerMethodArgumentResolverComposite
实例解析每个参数的值。
HandlerMethodArgumentResolverComposite
会询问HandlerMethodArgumentResolver
是否支持给定参数。如果支持参数,则该参数用于解析值。
ModelAttributeMethodProcessor
将支持给定的参数(SomeBean
)并尝试解析其值。
在resolveArgument
方法中,ModelAttributeMethodProcessor
将实例化参数类型的目标对象。
然后调用WebDataBinderFactory
创建一个WebDataBinder
,负责将请求绑定到目标对象。
绑定后,目标将被返回并作为处理程序方法的参数提供。
P.S。您应该阅读源代码而不是文档。