该注解的具体用法,在编程人生的博客中已经写得较为详细和到位了,附上链接 :
http://blog.csdn.net/li_xiao_ming/article/details/8349115
在此向编程人生表示感谢 ,学到了很多,稍微有一点不太清楚,小做补充讲解,主要是关于文中提到的:
2.@ModelAttribute注释一个方法的参数-(2)从Form表单或URL参数中获取(实际上,不做此注释也能拿到user对象)
@ModelAttribute(value="xxx")总的来说是向框架要求取得属性key为xxx的model属性,如果有就直接获得,
例如:
@RequestMapping(value="/add")
public String test(@ModelAttribute("user") User user){
return "abc";}
此处:@ModelAttribute("user") User user 用于向框架要求放入key为 user的model属性,并且将该属性的值赋给新建立的对象User user,
如果model中没有key为user的属性,就创建该属性并赋值给参数列表中的User user对象。
如果model中没有key为user的属性,并且没写@ModelAttribute("user"),由于参数列表中有User user对象入参,则Spring会将该对象放入model,并且key值为首字母小写的类名,也就是说对于方法:
@RequestMapping(value="/add")
public String test(User user){
return "abc";}
框架提前帮你写了一句model.addAttribute("user",user),但这样既不好读也不好懂,还是应当老老实实的@ModelAtreibute("xxx")。
注意,无论model中是否有key为user的属性,都要求User类有无参构造方法。
Spring中@ModelAttribute注解用法小结
最新推荐文章于 2022-11-09 09:17:06 发布