关于对ModelAndView自己的理解

  • Post author:
  • Post category:其他



之前学习的时候遇见过这个ModelAndView,但是一直不知道是什么意思,今天在项目里面遇到了,就理解下,加深自己的印象,以下内容均是本人对此理解,欢迎一起留言讨论。


首先ModelAndView 分为两部分:model和view。model负责的是从后面接收回来的参数,view就是视图就是指定的jsp页面。例如:ModelAndView mv = new ModelAndView(“test”);        所以当return mv的时候,其中view就是test.jsp页面。

 ModelAndView mv = new ModelAndView("test");                                   
                                mv.addObject("dd", "hellow");      //其中的"hellow"可以为从后面执行回来的数据。


页面接收值:${dd};


当返回其他类型的时候参考:

public ModelAndView login() {
        System.out.println("MAVTest.java login()....");
         ModelAndView mv = new ModelAndView();
         mv.setViewName("welcome");
         mv.addObject("msg", "hello kitty");
 
         // List
         List<String> list = new ArrayList<String>();
         list.add("java");
         list.add("c++");
         list.add("oracle");
         mv.addObject("bookList", list);
 
         // Map
         Map<String, String> map = new HashMap<String, String>();
         map.put("zhangsan", "北京");
         map.put("lisi", "上海");
         map.put("wangwu", "深圳");
         mv.addObject("map", map);
 
         return mv;
     }


页面上取值:

<body>  
    <!-- 输出普通字符 -->  
    ${msg } <br/>  
   <!-- 输出List -->  
    <p>书籍列表</p>  
    <c:forEach items="${bookList}" var="node">  
         <c:out value="${node}"></c:out>  
    </c:forEach>  
    <br/>  
    <br/>  
      
    <!-- 输出Map -->  
    <c:forEach items="${map}" var="node">  
         姓名:<c:out value="${node.key}"></c:out>  
         住址:<c:out value="${node.value}"></c:out>  
         <br/>  
    </c:forEach>  
 </body>  


注意:c标签所依赖的jar,jstl.jar,commons-el.jar,standard.jar


参考文章出处:https://www.cnblogs.com/Sunnor/p/6130380.html