(六)springmvc之ModelAndView、Model、Map、ModelMap
<a href="<%=request.getContextPath()%>/responseData/response_1">使用原生的作用域</a>
    <a href="<%=request.getContextPath()%>/responseData/response_2">ModelAndView</a>
    <a href="<%=request.getContextPath()%>/responseData/response_3">Model,Map,ModelMap</a>
controller
package com.shyroke.controller; import java.util.Map; import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping(value = "/responseData")
public class ResponseDataController {
@Autowired
private HttpServletRequest request;
@Autowired
private HttpServletResponse response;
@Autowired
private HttpSession session;
@Autowired
private ServletContext servletContext; @RequestMapping(value = "/response_1")
public String response_1() throws Exception {
this.request.setAttribute("req_key", "Request作用域"); this.session.setAttribute("session_key", "Session作用域"); this.servletContext.setAttribute("app_key", "Application作用域"); return "responseData";
} @RequestMapping(value = "/response_2")
public ModelAndView response_2() throws Exception {
/**
* ModelAndView中的数据只保存在Request中。
*/
ModelAndView mv = new ModelAndView();
mv.addObject("mv_1", "ModelAndView中的数据1");
mv.addObject("mv_2", "ModelAndView中的数据2"); mv.setViewName("responseData"); return mv;
} /**
* Model,Map,ModelMap中放入相同的数据,会前后覆盖。
*
*
* ModelAndView与上述3个放入相同的数据,最后起作用是ModelAndView中的数据。
*/
@RequestMapping(value = "/response_3")
public ModelAndView response_3(Model model, Map map, ModelMap modelMap)
throws Exception {
System.out.println("response_3方法"); ModelAndView mv = new ModelAndView();
mv.addObject("mv_1", "ModelAndView中的数据1");
mv.addObject("common", "ModelAndView中放入的"); model.addAttribute("model_1", "Model中的数据");
model.addAttribute("model_2", "Model中的数据2"); map.put("map_1", "Map中的数据1");
map.put("map_2", "Map中的数据2"); modelMap.addAttribute("modelMap_1", "ModelMap中的数据");
modelMap.put("modelMap_2", "ModelMap中的数据2");
modelMap.addAttribute("common", "ModelMap中放入的");
map.put("common", "Map中放入的");
model.addAttribute("common", "Model中放入的"); mv.setViewName("responseData");
return mv;
// return "responseData";
} }
- ModelAndView中的数据只保存在Request中。 
- Model,Map,ModelMap中放入相同的数据,会前后覆盖。 
- ModelAndView与上述3个放入相同的数据,最后起作用是ModelAndView中的数据。 
结果:






(六)springmvc之ModelAndView、Model、Map、ModelMap的更多相关文章
- SpringMVC学习 -- ModelAndView , Model , ModelMap , Map 及 @SessionAttributes 的使用
		输出模型数据: ModelAndView:处理方法返回值类型为 ModelAndView 时 , 其中包含视图和模型信息.方法体即可通过该对象添加模型数据 , 即 SpringMVC 会把 Model ... 
- SpringMVC  ModelAndView、Map、Model、ModelMap
		目标方法返回值可以是ModelAndView .Map.Model.ModelMap类型,但最根本还都是ModelAndView. 其中可以包含试图和模型信息. SpringMVC 会把ModelAn ... 
- SpringMVC中Map、Model、ModelMap、ModelAndView之间的关系及区别
		首先,在了解这三者之前,需要知道一点:SpringMVC在调用方法前会创建一个隐含的数据模型(Model),作为模型数据的存储容器, 成为”隐含模型”. 如果controller方法的参数为Moedl ... 
- SpringMVC   Model,ModelMap ModelAndView
		SpringMVC 调用方法之前会创一个隐含的模型对象(即Model,ModelMap ModelAndView) //@ModelAttribute 先于login方法执行 @ModelAttrib ... 
- SpringMVC 向页面传值-Map、Model和ModelMap
		除了使用ModelAndView方式外.还可以使用Map.Model和ModelMap来向前台页面传值 使用后面3种方式,都是在方法参数中,指定一个该类型的参数.例如: Java代码 @Request ... 
- Spring中Model、ModelMap及ModelAndView之间的区别
		Spring中Model.ModelMap及ModelAndView之间的区别 1. Model(org.springframework.ui.Model)Model是一个接口,包含addAttr ... 
- Spring中Model、ModelMap及ModelAndView之间的区别+传递参数
		org.springframework.ui.Model(接口)传递数据,Spring框架自动创建它的一个实现类,如BindingAwareModelMap org.springframework.u ... 
- Spring MVC 向页面传值-Map、Model和ModelMap
		原文链接:https://www.cnblogs.com/caoyc/p/5635878.html Spring MVC 向页面传值-Map.Model和ModelMap 除了使用ModelAndVi ... 
- Spring MVC-学习笔记(2)DispatcherServlet、@Controller、@RequestMapping、处理方法参数类型、可返回类型、Model、ModelMap、ModelAndView
		1.前端控制器org.springframework.web.servlet.DispatcherServlet 所有的请求驱动都围绕这个DispatcherServlet来分派请求.springMV ... 
随机推荐
- legend3---17、如何抽象和复用控制器中的方法
			legend3---17.如何抽象和复用控制器中的方法 一.总结 一句话总结: 比如不同的控制器中都用了检查手机号是否已经注册,是否没注册这样的功能,我应该如何抽象和复用方法 新建一个处理手机号码的模 ... 
- php实现excel单元格合并,字体加粗居中等操作
			使用的是phpexcel,基本用的原生语法,所见即所得,直接复制下面代码,即可: // 引用phpexcel类 $this->load->library('PHPExcel'); // 创 ... 
- PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)--续
			2.PHP与Mysqli扩展,面向过程.对象 <?php $mysql_conf = array( 'host' => '127.0.0.1:3306', 'db' => 'test ... 
- js刷新页面location.reload()用法
			转: js刷新页面location.reload()用法 2018年05月10日 10:23:28 大灰狼的小绵羊哥哥 阅读数 31359更多 分类专栏: [前端面试点滴知识 ] 本文介绍了js刷 ... 
- 自定义string类
			#include <iostream> #include <cstring> using namespace std; class String; class Data{ // ... 
- 一百四十:CMS系统之使用flask-paginate实现分页功能
			官方文档:https://pythonhosted.org/Flask-paginate/ 安装:pip install flask-paginate 在没有分页的情况下,默认会加载所有内容 在con ... 
- MySQL创建及删除临时表
			示例SQL: drop temporary table if exists testdb.tmp_test_table; create temporary table testdb.tmp_test_ ... 
- 基于MSP430F2618的程控电压源
			基于MSP430F2618的程控电压源 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 系列博客说明:此系列博客属于作者在大三大四阶段所储备的关于电子电路设计 ... 
- mysql 查询结果为null 或 空字符串时,返回指定字符串
			直接上代码, 亲测可用: SELECT IF ( ifnull( 字段, '' ) = '', '返回的字符串', 字段) AS 别名(或者不要也可以) FROM table 
- go json解析Marshal和Unmarshal
			Decoder: package main import ( "encoding/json" "fmt" "io" "log&qu ... 
