Spring MVC确定目标方法POJO类型入参的流程

来源:互联网 发布:复杂网络 python 编辑:程序博客网 时间:2024/06/08 05:05
  • 1 确定一个Key

    • 目标方法参数列表中存不存在使用@ModelAttribute修饰的参数,其中若存在该修饰,并且有name属性,则依据name属性给定的key来确定。
    • 若不存在则按照对应类型首字母小写的key来确定。
  • 2 在implicitModel 中按照key来查找对象,若存在则作为参数传入。

  • 3 若implicitModel 中不存在key对应的对象,则检查当前的控制器类型是否用@SessionAttributes修饰。
    • 若使用了该注解且@SessionAttributes ,则检查该注解的names属性中是否包含该键,如果包含该键则找到对应的对象传入到目标方法中,如果不包括则抛出异常。
  • 4 若控制器类不包括@SessionAttributes注解,或者该注解中没有names属性,则会通过反射来创建POJO对象,传入目标方法。
  • 5 SpringMVC会把key和POJO对象传入implicitModel 中,进而传入requestScope中。
阅读全文
0 0