ModelAttribute也是SpringMVC控制器类中的注解之一,主要有三个做用:app
1. 注解在参数上。code
绑定请求参数到命令对象,并把命令对象添加到Model,用于视图页面展现。对象
@RequestMapping("/save") blog
public String save(@ModelAttribute(“bwf”) Company bwf) { ip
service.save(bwf); get
return "result"; model
} service
它的做用是将该绑定对象以“bwf”为key,添加Model对象中,供视图页面展现使用。页面中可使用${bwf.name}来获取绑定对象的属性。请求
2. 注解在普通方法上(非RequestMapping注解的方法)。方法
@ModelAttribute("bwf")
public User addCompany(Company bwf) {
return new Company("1","博为峰");
}
假设此方法是写在某个Controller内,那么执行该Controller内带有@RequestMapping注解的方法以前,都会先执行此addCompany方法,而且在model对象中将添加bwf对象。
3. 注解在@RequestMapping 方法返回值上。
绑定该方法的返回值到Model对象,用于视图页面展现时使用。@ModelAttribute 注解的返回值会覆盖@RequestMapping 注解方法中的同名命令对象