@ModelAttribute注解Controller方法的入参

时间:2022-07-29 21:07:32

有两种用法,分别是:

(1)从model中获取

    @Controller
    public class HelloWorldController {

        @ModelAttribute("user")
        public User addAccount() {
           return new User("jz","123");
        }

        @RequestMapping(value = "/helloWorld")
        public String helloWorld(@ModelAttribute("user") User user) {
           user.setUserName("jizhou");
           return "helloWorld";
        }
    }

在这个例子里,@ModelAttribute("user") 申明参数user的值来源于Model中key=user的属性值。

(2)从Form表单或URL参数中获取(实际上,不做@ModelAttribute注解也能拿到user对象

    @Controller
    public class HelloWorldController {

        @RequestMapping(value = "/helloWorld")
        public String helloWorld(@ModelAttribute User user) {
           return "helloWorld";
        }
    }

在这个例子里,@ModelAttribute申明参数user的值来源于Form表单提交或URL参数。

注意:这时候,这个User类一定要有没有参数的构造函数。