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 }