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

 

猜你喜欢

转载自www.cnblogs.com/shuchen007/p/9385021.html