SpringMVC中分别使用ModelAndView,Model,Request域来封装数据,并显示在前端页面
1:前端jsp
<body>
欢迎来到page<br/>
${ac}<br/>
${msg}
</body>
2:视图解析器
<!-- 配置视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- JSP文件所在的目录 -->
<property name="prefix" value="/WEB-INF/pages/"/> <!-- 文件的后缀名 -->
<property name="suffix" value=".jsp"/>
</bean>
3:正文
3.1:request域对象存储数据,当然session,application也能存
@RequestMapping(value = "/run01",method = RequestMethod.GET)
public String run01(HttpServletRequest request){
request.setAttribute("ac",account);
return "page";
}
结果:欢迎来到page Account(id=1, name=关羽, money=200)
3.2:model存储数据
@RequestMapping(value = "/run02",method = RequestMethod.GET)
public String run02(Model model){
model.addAttribute("ac",account);
return "page";
}
结果:欢迎来到page Account(id=1, name=关羽, money=200)
3.3:modelAndView存储数据使用setViewName()和addObject()方法封装数据
@RequestMapping(value = "/run03",method = RequestMethod.GET)
public ModelAndView run03(ModelAndView modelAndView){
modelAndView.setViewName("page");
modelAndView.addObject("ac",account);
return modelAndView;
}
结果:欢迎来到page Account(id=1, name=关羽, money=200)
3.4:modelAndView存储数据使用setViewName()和getModel().put()方法封装数据
@RequestMapping(value = "/run05",method = RequestMethod.GET)
public ModelAndView run05(ModelAndView modelAndView){
modelAndView.setViewName("page");
modelAndView.getModel().put("ac",account);
return modelAndView;
}
结果:欢迎来到page Account(id=1, name=关羽, money=200)
3.5:modelAndView的构造方法存储数据
@RequestMapping(value = "/run07",method = RequestMethod.GET)
public ModelAndView run07(ModelAndView modelAndView){
return new ModelAndView("page","ac",account);
}
结果:欢迎来到page Account(id=1, name=关羽, money=200)
3.6:modelmap存储数据,并通过modelAndView的构造方法封装数据
@RequestMapping(value = "/run06",method = RequestMethod.GET)
public ModelAndView run06(ModelMap modelMap){
modelMap.addAttribute("ac",account);
modelMap.addAttribute("msg","关羽");
return new ModelAndView("page",modelMap);
}
结果:欢迎来到page Account(id=1, name=关羽, money=200) 关羽