@ModelAttribute注解Controller方法的入参

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

有两种用法,分别是:

(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类一定要有没有参数的构造函数。