1. 程式人生 > >ModelAndView存取數Model、Map、ModelMap

ModelAndView存取數Model、Map、ModelMap

-c out 數據 () strong 需要 ppi bject 指定

1、從名字上看ModelAndView中的Model代表模型,View代表視圖,這個名字就很好地解釋了該類的作用。(對應mvc配置,尋找模型,返回視圖。)

2、業務處理器調用模型層處理完用戶請求後,把結果數據存儲在該類的model屬性中,把要返回的視圖信息存儲在該類的view屬性中,

3、然後讓該ModelAndView返回該Spring MVC框架。框架通過調用配置文件中定義的視圖解析器,對該對象進行解析,

4、最後把結果數據顯示在指定的頁面上。

在DispatcherServlet將請求分發給Spring Controller之前,需要借助於Spring提供的HandlerMapping定位到具體的Controller。HandlerMapping是這樣一種對象,它能夠完成客戶請求到Controller之間的映射。在Struts中,這種映射是通過struts-config.xml文件完成的。其中,Spring為Controller接口提供了若幹實現,例如Spring默認使用的BeanNameUrlHandlerMapping。還有,SimpleUrlHandlerMapping,CommonsPathMapHandlerMapping。

EL表達式取數位置:

Model、Map、ModelMap以及ModelAndView:初始化由Spring創建以上對象。

${msg }=${requestScope.msg }=<%=request.getAttribute("msg")%>

${user.getName()}=${requestScope.user.getName()}

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 @RequestMapping("/save.do") public ModelAndView save(User user){ System.out.println("------------------"); System.out.println("name="+user.getName()+" age="+user.getAge()); System.out.println("------------------"); ModelAndView mv = new ModelAndView("success"
); mv.addObject("msg", "添加成功3"); mv.addObject("user", user); return mv; } //直接在處理方法上聲明ModelMap對象 springmvc會將ModelMap中的數據攜帶到前臺 @RequestMapping("/show.do") public ModelAndView show(ModelMap map){ map.addAttribute("msg", "modelMap攜帶參數"); return new ModelAndView("success"); } //直接在處理方法上聲明ModelMap對象 springmvc會將ModelMap中的數據攜帶到前臺 @RequestMapping("/show1.do") public ModelAndView show1(Model map){ map.addAttribute("msg", "modelMap攜帶參數1"); return new ModelAndView("success"); } //直接在處理方法上聲明request對象 @RequestMapping("/show2.do") public ModelAndView show2(HttpServletRequest req){ req.setAttribute("msg", "req攜帶參數"); return new ModelAndView("success"); }

ModelAndView存取數Model、Map、ModelMap