springmvc的ServletModelAttributeMethodProcessor解析_晏无心_新浪博客

  • Post author:
  • Post category:其他



当handler的参数类型为自定义的实体类类型或者添加了@ModelAttribute注解,ServletModelAttributeMethodProcessor会对参数进行解析绑定。


springmvc的ServletModelAttributeMethodProcessor解析



判断有没有@ModelAttribute注解,或者不是Java基本数据类型(Date、Number、Enum等)。



看具体的handler:

另外一种用法是添加@ModelAttribute注解,对于这个的用法目前还不是太清晰:

springmvc的ServletModelAttributeMethodProcessor解析



需要写一个方法,添加@ModelAttribute注解,请求会先进入这个方法,然后在进入对应的handler,这个时候添加@ModelAttribute的参数就可以获取到preTest12()方法里设置的值。



再来看resolveArgument()方法:

springmvc的ServletModelAttributeMethodProcessor解析



springmvc的ServletModelAttributeMethodProcessor解析



通过构造方法反射得到参数的实例。

再回到resolveArgument()方法:

springmvc的ServletModelAttributeMethodProcessor解析



springmvc的ServletModelAttributeMethodProcessor解析



springmvc的ServletModelAttributeMethodProcessor解析



springmvc的ServletModelAttributeMethodProcessor解析



最终通过spring bean的注入将http请求参数值注入到handler的实体类中。



ServletModelAttributeMethodProcessor主要解析handler的实体类参数,将http请求参数映射绑定到实体类对应的属性里。



版权声明:本文为u013219087原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。