Spring之模型
一、Spring模型种类
Spring有以下几种模型:
1、ModelAndView:作为方法返回值类型,就如其名字一样,既能添加模型数据,又能设置视图;
2、Model:Model作为接口,一般情况下,控制器的方法返回值为String类型,(Model model)作为入参存在于方法中;既可以显式声明key,addAttribute(key,Object)
3、ModelMap:ModelMap作为接口,一般情况下,控制器的方法返回值为String类型(Map map)作为入参存在于方法中;
4、@SessionAttributes:将模型中的某个属性暂存到 HttpSession 中,以便多个请求之间可以共享这个属性;
5、@ModelAttribute:方法入参标注该注解后, 入参的对象就会放到数据模型中。
二、Spring模型具体介绍
ModelAndView:控制器处理方法的返回值如果为 ModelAndView, 则其既包含视图信息,也包含模型数据信息。
1 @Controller 2 @RequestMapping("/model") 3 public class ModelController { 4 5 @RequestMapping("/register") 6 public ModelAndView register(User user){ 7 8 ModelAndView mv = new ModelAndView("home"); //视图名home 9 mv.addObject("user", user); 10 11 return mv; //模型名mv 12 } 13 }
Map:
1 @Controller 2 @RequestMapping("/Map") 3 public class ModelController { 4 5 @RequestMapping("/register") 6 public String register(User user, Map<String, Object> map){ 7 8 map.put("user", user); 9 10 return "home"; 11 } 12 }
Model:
1 @Controller 2 @RequestMapping("/model") 3 public class ModelController { 4 5 @RequestMapping("/register") 6 public String register(User user, Model model){ 7 8 model.addAttribute("user", user); 9 // model.addAttribute(user);这种隐性添加数据时,Model会自动装备key,key="userList" 10 return "home"; 11 } 12 }
,