ModelAndView顾名思义,它既可以设置 Model(模型),又可以设置view(视图)
看个例子:
控制器中的两个方法get1()用来获取用户id,获取后把获取的信息重定向到update页面(我使用了视图解析技术,所以重定向后的界面只写了“update”,因为前缀,后缀都配置过了,可以省略。更新页面为update.jsp)
1.get1()设置返回值类型为 ModelAndView,传一个参数id
2.new一个对象mav:ModelAndView mav=new ModelAndView();
3.设置view即要返回的视图:mav.setViewName("update");
4.设置model即要传过去的数据模型:mav.addObject(userService.getOne(id));
5.最后返回mav
@GetMapping("/get1")
public ModelAndView get1(Integer id) {
ModelAndView mav=new ModelAndView();
mav.setViewName("update");
mav.addObject(userService.getOne(id));
//m.addAttribute("user", userService.getOne(id));
return mav;
}
@PostMapping("/update")
public String update(User user, Model m) {
userService.updateUser(user);
return "redirect:list";
}
测试一下:数据库中id=13的信息如下
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxCeFRkT3dGVNdXU6hFeGNDTwYVbiVHNHpleO1GTulzRilWO5xkNNh0YwIFSh9Fd4VGdsATMfd3bkFGazxyaHRGcWdUYuVzVa9GczoVdG1mWfVGc5RHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cWZwpmL5MDN5EDOyUTM3ATMxgTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpeg)
地址栏输入:http://localhost:8080/user/get1?id=13
我们发现已经转到了修改信息页面,并且之前的数据也都加载了出来