@ModelAttribute有俩个位置,一个是在方法体中,下面这个demo的用意就是每次controller@RequestMapping方法被调用之前都会走这个方法,并向Model中(@RequestMapping函数参数的Model)中添加这个返回值,key的值是返回类的首字母小写,比如这个就是key="sysUserMapping";
1 @ModelAttribute 2 public SysUserMapping get(@RequestParam(required = false) String id) { 3 SysUserMapping entity = null; 4 if (StringUtils.isNotBlank(id)) { 5 entity = sysUserMappingService.get(id); 6 } 7 if (entity == null) { 8 entity = new SysUserMapping(); 9 } 10 return entity; 11 } 12 13 @RequestMapping(value = "form") 14 public String form(Model model) { 15 return "platform/usermapping/sysUserMappingForm"; 16 }
对于form这个函数,即使什么也不做,此时你通过model.containsAttribute(“sysUserMapping”),你将会看到是存在值的。@ModelAttribute还有一个用途就是放在@RequestMapping的函数的参数前面,代表该参数和View绑定的对象做映射,当然前提是当初在获取页面的时候就要在页面中的Model中通过addAttribute进行添加。