Spring MVC_Model_模型数据

发布时间 2023-06-14 07:10:35作者: ming1010

1.ModelAndView, RESTful request,@PathVariable

 1  @RequestMapping("/user/get/{uid}")
 2     public ModelAndView getUserById(@PathVariable("uid") Integer uid) {
 3         ModelAndView mv = new ModelAndView();
 4         if (1001 == uid) {
 5             mv.addObject("uid", "1001");
 6             mv.addObject("name", "ZhangSan");
 7         }
 8         mv.setViewName("success");//return "success";
 9         return mv;
10     }

2.Model

1 @RequestMapping("user/get/{uid}")
2     public String getUserByUid(@PathVariable("uid") Integer uid, Model model) {
3         model.addAttribute("uid", 1001);
4         model.addAttribute("name", "LiSi");
5         return "success";
6     }

3.Map

1 @RequestMapping("user/get/{uid}")
2     public String getUserByUid(@PathVariable("uid") Integer uid, Map map) {
3         map.put("uid", 1001);
4         map.put("name", "WangWu");
5         return "success";
6     }

4.ModelMap-集合了map和Model的方法。

1 @RequestMapping("user/add/{uid")
2     public String getUserById(@PathVariable("uid") Integer uid, ModelMap modelMap) {
3         modelMap.addAttribute("uid", 1001);
4         modelMap.addAttribute("name", "Wang");
5         modelMap.put("age", 18);
6         modelMap.put("sex", "Man");
7         return "success";
8     }

5. compare to Model, Map, ModelMap,三者一样并且优先级一致

 1  @RequestMapping("/test/mmmm")
 2     public String testMMMM(Model model, Map map, ModelMap modelMap) {
 3         if (model == modelMap) {
 4             System.out.println("model = modelMap");
 5         }
 6         if (map == modelMap) {
 7             System.out.println("map = modelMap");
 8         }
 9         System.out.println("if print two if statements, it means Model, Map, ModelMap are the same. ");
10         return "success";
11     }
12 
13     @RequestMapping("/test/mmmm02")
14     public String testMMMM02(Model model, Map map, ModelMap modelMap) {
15 
16         String result = "init";
17         model.addAttribute("result", "model");
18         map.put("result", "map");
19         modelMap.put("result", modelMap);
20         return "success";
21         //通过调换顺序测试得出Model, Map, ModelMap三者优先级一致。
22 
23     }

6.compare ModelAndView to Model, Map, ModelMap, and ModelAndView has higher priority.

1 @RequestMapping("/test/MMMMM")
2     public ModelAndView testMMMMM(Map map) {//因为Model, Map, ModelMap一样,只选择其中一个比较即可
3         ModelAndView mv = new ModelAndView("success");
4         String result = "init";
5         mv.addObject("result", "modelAndView");
6         map.put("result", "map");
7         //mv.setViewName("success");
8         return mv;
9     }