ModelAndView存取數Model、Map、ModelMap


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" );
     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM