(六)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中的数据。

结果:

时间: 2024-10-30 08:58:16

(六)springmvc之ModelAndView、Model、Map、ModelMap的相关文章

springMVC中的Model、ModelMap、ModelAndView

Model.ModelMap两者几乎没有任何区别 ModelMap(model).ModelAndView这两者的区别:有一个需要返回对象,一个需要返回的是地址路径. @RequestMapping(value="/findAll") public ModelAndView findAll() throws Exception { ModelAndView mv = new ModelAndView(); // ...... return mv; } @RequestMapping(p

SpringMVC学习 -- ModelAndView , Model , ModelMap , Map 及 @SessionAttributes 的使用

输出模型数据: ModelAndView:处理方法返回值类型为 ModelAndView 时 , 其中包含视图和模型信息.方法体即可通过该对象添加模型数据 , 即 SpringMVC 会把 ModelAndView 中的 model 模型放入到 request 域对象中. Map, Model, ModelMap:目标方法的入参中包含 Map, Model, ModelMap 类型的数据, 返回值是 String 类型,Spring MVC 会自动把 Map, Model, ModelMap转化

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

除了使用ModelAndView方式外.还可以使用Map.Model和ModelMap来向前台页面传值 使用后面3种方式,都是在方法参数中,指定一个该类型的参数.例如: Java代码 @RequestMapping("/test") public String test(Map<String,Object> map,Model model,ModelMap modelMap){ map.put("names", Arrays.asList("c

springMVC:modelandview,model,controller,参数传递

转载:http://blog.csdn.net/wm5920/article/details/8173480 1.web.xml 配置: copy <> ></> ></> > >> ></> ></> > ></> </> <> ></> ></> </> 这样,所有的.htm的请求,都会被Dispatche

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

除了使用ModelAndView方式外.还可以使用Map.Model和ModelMap来向前台页面创造 使用后面3种方式,都是在方法参数中,指定一个该类型的参数.例如: Java代码 1 @RequestMapping("/test") 2 public String test(Map<String,Object> map,Model model,ModelMap modelMap){ 3 4 map.put("names", Arrays.asList

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

注意:如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面. 首先介绍ModelMap[Model]和ModelAndView的作用 Model 是一个接口, 其实现类为ExtendedModelMap,继承了ModelMap类. ModelMapModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据

Model、ModelMap、ModelAndView的作用及区别

Model.ModelMap.ModelAndView的作用及区别 对于MVC框架,控制器controller执行业务逻辑 用于产生模型数据Model 视图view用来渲染模型数据 Model和ModelAndView这两个类在spring的视图解析时作用及区别 1.Model是用来传输数据的,不会进行业务的寻址 2.ModelAndView可以进行业务寻址(就是设置对应的要请求的静态文件,静态文件类似于jsp文件) 最大的区别:Model每一次请求可以自动创建,ModelAndView是需要我

SpringMVC参数传递方式list,map

本文是基于SpringMVC注解的方式来实现页面与后台之间参数的传递,本文主要侧重于从后台传递到前台view. 内容: 1.后台传递单个对象User到前台: 2.后台传递集合对象到前台(分Map和List两种情形) 下面的内容基于SpringMVC工程配置已经准备好,该工程是用maven搭建的. 一:传递单个对象(以用户对象User为例) User类: public class User { private Integer userId; //用户名 private String userNam

SpringMVC中ModelAndView对象与“视图解析器”

摘要: spring MVC这个环境中,Spring MVC会依据controller(或者你叫它handler)中处理方法的返回值,进行解析,解析之后提供一个视图,作为响应. 标注了@Controller的处理器,实际上本质是一个POJO,你标注了@Controller,我就高看你一眼. spring MVC这个环境中,Spring MVC会依据controller(或者你叫它handler)中处理方法的返回值,进行解析,解析之后提供一个视图,作为响应.标注了@Controller的处理器,实