我开始了解当用户在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)到目标对象。
  • 绑定(bind)后,将返回目标并将其作为处理程序方法的参数提供。

  • P.s.代替文档,您应该阅读源代码。

    10-07 12:35