我开始了解当用户在Spring MVC Web应用程序的上下文中请求某个URL时,在后台发生的情况。
但是我无法弄清楚何时以及如何进行数据绑定(bind),即输入表单的字段与模型对象之间的映射以及相关处理程序方法中该对象的后续注入(inject)。
任何人都知道隐含了哪些类和方法,这在文档中出现在什么地方?
最佳答案
例如,如果您要将表示SomeBean
的数据发布到此处理程序:public void (SomeBean someBean)
,则会在Spring 4中发生以下情况。
InvocableHandlerMethod
将遍历方法的参数,并将要求HandlerMethodArgumentResolverComposite
实例解析每个参数的值。 HandlerMethodArgumentResolverComposite
将询问它的HandlerMethodArgumentResolver
是否支持给定参数。如果支持该参数,则该参数用于解析值。 ModelAttributeMethodProcessor
将支持给定参数(SomeBean
),并将尝试解析其值。 resolveArgument
方法内部,ModelAttributeMethodProcessor
将实例化参数类型的目标对象。 WebDataBinderFactory
创建一个WebDataBinder
,该ojit_code负责将请求绑定(bind)到目标对象。 P.s.代替文档,您应该阅读源代码。