【SpringMVC】返回视图中包含数据(ModelAndView)
在普通的servlet项目中,Controller获取了数据,需要在视图显示,需要显示的调用request.setAttribute()等方法
在SpringMVC中,使用ModelAndView、ModelMap,Model,Map。
以下四种方式都是放在request域中,
如果放在Session中,在类名前加上@SessionAttributes("student"),@SessionAttributes("student1")这样的注解,注解中为放入request域中名字(如果需要在session中放入所有Student类型的对象,@SessionAttributes(types=Student.class)或@SessionAttributes(types= {Student.class,Adress.class}))
ModelAndView示例 方法:
public ModelAndView testModelAndView(){ // Model:M View:V ModelAndView modelAndView = new ModelAndView("success"); Student student = new Student(); student.setId(1); student.setName("zs"); // equals to : request.setAttribute("student",student); modelAndView.addObject("student",student); return modelAndView; }
访问链接:
<a href="handler/testModelAndView">testModelAndView</a>
放在request域中,页面输出:${requestScope.student.id}
ModelMap方式:
@RequestMapping(value = "testModelMap") public String testModelMap(ModelMap modelMap) { Student student = new Student(); student.setId(123); student.setName("qwer"); modelMap.put("student2", student); return "success"; }
Map方式:
@RequestMapping("testMap") public String testMap(Map<String, Object> map) { Student student = new Student(); student.setId(2); student.setName("asd"); map.put("student3", student); return "success"; }
Model方式:
@RequestMapping("testModel") public String testModel(Model model) { Student student = new Student(); student.setId(3); student.setName("ttt"); model.addAttribute("student3", student); return "success"; }