-
@ModelAttribute:
该注解通常在Controller
上的某个方法上,此方法会首先被调用,并将方法作为Mode
的属性,然后再调用对应的Controller
处理方法。利用postman做测试,
localhost:8988/1633c318f09f4071a1609cb5b1a952c5/get.json
@Resource private UserMapper userMapper; @ModelAttribute public User findByUserId(@PathVariable String id){ return userMapper.selectByPrimaryKey(id); } @GetMapping("/{id}/get.json") @ResponseBody public Boolean getUser(Model model){ if(model.containsAttribute("user")){ return true; }else{ return false; } }
注:对于HTTP请求,会先调用
findByUserId
方法获取user
,并添加到模型里面使用,使用ModelAttribute
可以向一个Controller
中需要的公共模型中添加数据。如果
findByUserId
仅添加一个对象到Model中,可以写成如下形式:@ModelAttribute public User findByUserId(@PathVariable String id){ return userMapper.selectByPrimaryKey(id); }
Model和ModelView的区别:
Model:
是每次请求中都存在的默认参数,利用其addAttribute()
方法即可将[服务器]的值传递到jsp页面中;
ModelAndView:
包含model
和view
两部分,使用时需要自己实例化,利用ModelMap
用来传值,也可以设置view
的名称具体可以参考:
https://blog.csdn.net/opera95/article/details/78498812
https://blog.csdn.net/lpq374606827/article/details/78764139
网友评论