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中。
Spring MVC确定目标方法POJO类型入参的流程
最新推荐文章于 2020-08-19 18:33:29 发布