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的更多相关文章

  1. SpringMVC ModelAndView、Map、Model、ModelMap

    目标方法返回值可以是ModelAndView .Map.Model.ModelMap类型,但最根本还都是ModelAndView. 其中可以包含试图和模型信息. SpringMVC 会把ModelAn ...

  2. SpringMVC中Map、Model、ModelMap、ModelAndView之间的关系及区别

    首先,在了解这三者之前,需要知道一点:SpringMVC在调用方法前会创建一个隐含的数据模型(Model),作为模型数据的存储容器, 成为”隐含模型”. 如果controller方法的参数为Moedl ...

  3. Spring中Model、ModelMap及ModelAndView之间的区别

    Spring中Model.ModelMap及ModelAndView之间的区别   1. Model(org.springframework.ui.Model)Model是一个接口,包含addAttr ...

  4. Spring中Model,ModelMap和ModelAndView

    目录 1.Model接口 2.ModelMap 3.ModelAndView 1.Model接口(org.springframework.ui.Model) Model是一个接口,包含addAttri ...

  5. Spring中Model、ModelMap及ModelAndView之间的区别+传递参数

    org.springframework.ui.Model(接口)传递数据,Spring框架自动创建它的一个实现类,如BindingAwareModelMap org.springframework.u ...

  6. SPRING框架中ModelAndView、Model、ModelMap区别及详细分析

    转载内容:http://www.cnblogs.com/google4y/p/3421017.html 1. Model Model 是一个接口, 其实现类为ExtendedModelMap,继承了M ...

  7. Spring MVC 向页面传值-Map、Model和ModelMap

    原文链接:https://www.cnblogs.com/caoyc/p/5635878.html Spring MVC 向页面传值-Map.Model和ModelMap 除了使用ModelAndVi ...

  8. Spring框架中ModelAndView、Model、ModelMap的区别

    转自:http://blog.csdn.net/liujiakunit/article/details/51733211 1. Model Model 是一个接口, 其实现类为ExtendedMode ...

  9. SpringMVC 向页面传值-Map、Model和ModelMap

    除了使用ModelAndView方式外.还可以使用Map.Model和ModelMap来向前台页面传值 使用后面3种方式,都是在方法参数中,指定一个该类型的参数.例如: Java代码 @Request ...

随机推荐

  1. NYOJ90-整数划分,经典递归思想~~

    整数划分 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 将正整数n表示成一系列正整数之和:n=n1+n2+-+nk,  其中n1≥n2≥-≥nk≥1,k≥1.  正整数 ...

  2. SHELL脚本运行的几种方法以及区别

    #1 给脚本加上执行权限chmod u+x a.sh, 而后就可以直接用全路径来执行脚本了,比如当前文件夹下用./a.sh,如果如果脚本所在目录在PATH环境变量之中, 则直接用a.sh即可(这和运行 ...

  3. vagrant的学习 之 Laravel

    vagrant的学习 之 Laravel 本文根据慕课网的视频教程练习,感谢慕课网! 慕课视频学习地址:https://www.imooc.com/video/14218. 慕课的参考文档地址:htt ...

  4. 解决使用FusionCharts以后从后台获取数据中文乱码的问题

    在使用FusionCharts 的时候 ,发现了一个非常奇怪的问题, 一旦在页面上加入一个chart组件, 不管给不给数据, 从后台取到的数据, 中文就全变成了乱码. 由于我使用的是object ar ...

  5. Wannafly挑战赛1

    地址:https://www.nowcoder.com/acm/contest/15#question A(树形dp) 分析 dp[i][0],dp[i][1]分别表示以i为根的子树中,有多少个点到i ...

  6. Linux 的 Socket IO 模型

    前言 之前有看到用很幽默的方式讲解Windows的socket IO模型,借用这个故事,讲解下linux的socket IO模型: 老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系. 他 ...

  7. centos 5.11修改ssh默认端口号

    查看下服务器端口号范围: # sysctl -a|grep ip_local_port_range    net.ipv4.ip_local_port_range = 32768    61000 新 ...

  8. pagePiling.js - 创建美丽的全屏滚动效果

    在线演示 在线演示 本地下载 全屏滚动效果是近期很流行的网页设计形式,带给用户良好的视觉和交互体验. pagePiling.js 这款jQuery插件能够帮助前端开发者轻松实现这样的效果.支持全部的主 ...

  9. 鸟哥的Linux私房菜-----12、学习使用Shell scripts

  10. Linux Shell 条件测试

    1. 文件测试 -d 目录 -s 文件非空 -f 是正规文件 -w 有写权限 -r 有读权限 -x 有执行权限 -L 符号连接 -u 文件有suid位设置