@ModelAttribute是springmvc框架下的注解,今天在项目中遇到,感觉没什么印象,就百度了下,感觉讲的也很模糊,今天就简单的讲讲我的理解。
@ModelAttribute通常有一下四种用法:
第一种:不带返回中的方法。
如图所示,会controller的请求之前执行此方法,并且把参数自动添加到model当中,同时可以在拦截的方法中(test1)做一些逻辑操作。
并且可以把拦截方法test1方法中得到的数据带到真正的请求方法中(mapping)。
第二种:带返回值的方法
同样会controller中请求的方法之前执行此方法。
并且会把test1方法得返回值带到model中。
第三种:使用@ModelAttribute注解方法的参数
在方法参数上加注解@ModelAttribute,会把参数自动添加到model中以便返回视图层。(用post方法传递参数的时候参数无法封装进investUser中,这点要注意)。
第四种:使用@ModelAttribute注解请求方法
用@ModelAttribute注解@RequestMapping方法的场景很少会用到,因为这种场景下的返回值就不是视图了而是ModelAttribute的value值,如果不是视图,那么@RequestMapping注解的方法也失去了本身的含义。