springMVC注解@ModelAttribute

1. 用在方法上

    一个控制器可以拥有多个@ModelAttribute方法。同个控制器内的所有这些方法,都会在@RequestMapping方法之前被调用。

        1) 方法通过返回值的方式默认地将添加一个属性;

        2) 方法接收一个Model对象,然后可以向其中添加任意数量的属性。

2. 用在方法参数上

    标注在方法参数上的@ModelAttribute说明了该方法参数的值将由model中取得。如果model中找不到,那么该参数会先被实例化,然后被添加到model中。在model中存在以后,请求中所有名称匹配的参数都会填充到该参数中。

        1) 它可能因为@SessionAttributes标注的使用已经存在于model中。

        2) 它可能因为在同个控制器中使用了@ModelAttribute方法已经存在于model中。

        3) 它可能是由URI模板变量和类型转换中取得的。

        4) 它可能是调用了自身的默认构造器被实例化出来的。



作者:eagle_king
链接:https://www.jianshu.com/p/56c70a69f349
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
原文地址:https://www.cnblogs.com/a-s-m/p/13151507.html