zoukankan      html  css  js  c++  java
  • 响应数据传出(springMVC)

    1.    SpringMVC 输出模型数据概述

    提供了以下几种途径输出模型数据:

     ModelAndView: 处理方法返回值类型为 ModelAndView 时, 方法体即可通过该对象添加模型数据

     Map 及 Model: 入参为 org.springframework.ui.Model、

    org.springframework.ui.ModelMap 或 java.uti.Map 时,处理方法返回时,Map 中的数据会自动添加到模型中。

     @SessionAttributes: 将模型中的某个属性暂存到 HttpSession 中,以便多个请求之间可以共享这个属性

     @ModelAttribute: 方法入参标注该注解后, 入参的对象就会放到数据模型中

    2.    处理模型数据之 ModelAndView

    ①   控制器处理方法的返回值如果为 ModelAndView, 则其既包含视图信息,也包含模型数据信息。

    ②   添加模型数据:

    MoelAndView addObject(String attributeName, Object attributeValue)

    ModelAndView addAllObject(Map<String, ?> modelMap)

    ③   设置视图:

    void setView(View view)

    void setViewName(String viewName)

    /**
     * 目标方法的返回类型可以是ModelAndView类型
     *                 其中包含视图信息和模型数据信息
     */
    @RequestMapping("/testModelAndView")
    public ModelAndView testModelAndView(){
    System.out.println("testModelAndView");
    String viewName = "success";
    ModelAndView mv = new ModelAndView(viewName );
    mv.addObject("time",new Date().toString()); //实质上存放到request域中 
    return mv;
    }
    time: ${requestScope.time }

    3.    处理模型数据之 Map

    Spring MVC 在内部使用了一个 org.springframework.ui.Model 接口存储模型数据

    具体使用步骤

    1)         Spring MVC 在调用方法前会创建一个隐含的模型对象作为模型数据的存储容器

    2)         如果方法的入参为 Map 或 Model 类型,Spring MVC 会将隐含模型的引用传递给这些入参。

    3)           在方法体内,开发者可以通过这个入参对象访问到模型中的所有数据,也可以向模型中添加新的属性数据

    //目标方法的返回类型也可以是一个Map类型参数(也可以是Model,或ModelMap类型)
    @RequestMapping("/testMap")
    public String testMap(Map<String,Object> map){ //【重点】
    System.out.println(map.getClass().getName());
    //org.springframework.validation.support.BindingAwareModelMap
    map.put("names", Arrays.asList("Tom","Jerry","Kite"));
    return "success";
    }

    <!-- 测试 Map 作为处理返回结果 -->

    <a href="springmvc/testMap">testMap</a>

    ①     增加成功页面,显示结果

    names: ${requestScope.names }

    1.    处理模型数据之 SessionAttributes 注解

    若希望在多个请求之间共用某个模型属性数据,则可以在控制器类上标注一个 @SessionAttributes, Spring MVC 将在模型中对应的属性暂存到 HttpSession 中。

    @SessionAttributes 除了可以通过属性名指定需要放到会话中的属性外,还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中

    例如:

    ①     @SessionAttributes(types=User.class) 会将隐含模型中所有类型为 User.class 的属性添加到会话中。

    ②     @SessionAttributes(value={“user1”, “user2”})

    ③     @SessionAttributes(types={User.class, Dept.class})

    ④     @SessionAttributes(value={“user1”, “user2”}, types={Dept.class}) 

  • 相关阅读:
    C#选择文件、选择文件夹、打开文件
    如何去掉数据库重复记录并且只保留一条记录
    SQL总结——存储过程
    SQL Server中的标识列
    c# 获取键盘的输入
    C# 中BindingSource 的用法
    WinForm timer 控件
    C#获得窗口控件句柄
    checkedListBox的使用
    c++从文件中读取特定字符串问题的总结
  • 原文地址:https://www.cnblogs.com/limingxian537423/p/7435169.html
Copyright © 2011-2022 走看看