Spring中@ModelAttribute注解用法小结

来源:互联网 发布:在淘宝上开网店程序 编辑:程序博客网 时间:2024/05/01 17:49

        该注解的具体用法,在编程人生的博客中已经写得较为详细和到位了,附上链接 :
  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类有无参构造方法。

  

0 0