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}) 

  • 相关阅读:
    不可小视视图对效率的影响力
    Maximum Margin Planning
    PhysicsBased Boiling Simulation

    Learning Behavior Styles with Inverse Reinforcement Learning
    Simulating Biped Behaviors from Human Motion Data
    Nearoptimal Character Animation with Continuous Control
    Apprenticeship Learning via Inverse Reinforcement Learning
    回报函数学习的学徒学习综述
    Enabling Realtime Physics Simulation in Future Interactive Entertainment
  • 原文地址:https://www.cnblogs.com/limingxian537423/p/7435169.html
Copyright © 2011-2022 走看看