ModelAndView

使用ModelAndView类用来存储处理完后的结果数据,以及显示该数据的视图。从名字上看ModelAndView中的Model代表模型,View代表视图,这个名字就很好地解释了该类的作用。

业务处理器调用模型层处理完用户请求后,把结果数据存储在该类的model属性中,把要返回的视图信息存储在该类的view属性中,然后让该ModelAndView返回该Spring MVC框架。框架通过调用配置文件中定义的视图解析器,对该对象进行解析,最后把结果数据显示在指定的页面上。

它既能返回视图(html页面), 还能携带该html页面所需要的数据,只要把html页面连同数据一起返回给前端,我们后端的工作就结束了。

知道了它强大的功能,下面解析一下该如何使用。

首先它是如何返回视图的?
一个ModelAndView只能返回一个html页面,你只需要把html页面的名字给ModelAndView就可以了。
例如我想打开home.html页面: ModelAndView.setViewName(“home”)

其次它如何携带数据?
它有很多函数,其中最好用的就是addObject(name,object ),把你想要传到前端的object起一个名字,在前端就可以根据你起的名字获得这个object。

它可以携带很多数据,但是注意起名不能重复。

 

通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面 , 使用addObject()设置需要返回的值,addObject()有几个不同参数的方法,可以默认和指定返回对象的名字。

 

========================================

一,ModelAndView 介绍:

  1)ModelAndView 用于后台与前端页面交互;

  2)可以用于重定向与转发到指定页面,

  3)可以保存数据然后渲染到页面

二,使用:

  1)在Controller层的方法返回值写为ModelAndView 

  2)在方法内 new一个 ModelAndView

  3)给ModelAndView 赋值

  4)返回ModelAndView

ModelAndView

 

 

三,常用返回类型与页面渲染方法:

1)返回值

// List
 List<String> list = new ArrayList<String>();
 list.add("张三");
 list.add("李四");
 list.add("王五");
 mav.addObject("userList", list);
 
// Map
 Map<String, String> map = new HashMap<String, String>();
 map.put("zhangsan", "张三");
 map.put("lisi", "李四");
 map.put("wangwu", "王五");
 mav.addObject("map", map);

2)页面

//list 
<%@ prefix="c" taglib uri="http://java.sun.com/jsp/jstl/core" %>
   <c:forEach items="${userList}" var="u"> 
   <c:out value="${u}"></c:out> 
</c:forEach>

//map
<c:forEach items="${map}" var="n"> 
   <c:out value="${n.value}"></c:out> 
</c:forEach>

四,Springmvc配置:

<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/" />
<!-- 
prefix用于给返回的视图名之前添加路径,例如返回index,
那就在项目的根路径下加上 /index (如果项目路径是:http://localhost:8080/portal)
那么返回的路径就是:http://localhost:8080/portal/index
-->
<property name="suffix" value=".jsp" />
<!-- 
suffix用于给返回的视图名之前添加后缀,例如返回index,
那么返回的路径就是:http://localhost:8080/portal/index.jsp
-->
</bean>

========================================

 

========================================

REF

https://blog.csdn.net/qq_40774175/article/details/87932825

https://www.cnblogs.com/alsf/p/9134589.html

上一篇:数据结构基础:P7.5-图(二)--->哈利·波特的考试


下一篇:44.Prim算法