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

转载于:https://www.cnblogs.com/limingxian537423/p/7435169.html

响应数据传出(springMVC)相关推荐

  1. SpringMVC处理请求或响应数据

    SpringMVC处理请求数据或响应数据: 请求处理方法签名 Spring MVC 通过分析处理方法的签名,HTTP请求信息绑定到处理方法的相应人参中. Spring MVC 对控制器处理方法签名的限 ...

  2. SpringMVC的响应数据和结果视图

    响应数据之返回值是String类型 方法执行完,需要跳转到指定的页面,最终给用户一个响应.springmvc提供了很多种响应的方式. controller 方法返回字符串可以指定逻辑视图名,通过视图解 ...

  3. java day62【 响应数据和结果视图 、 SpringMVC 实现文件上传 、 SpringMVC 中的异常处理 、 SpringMVC 中的拦截器 】...

    第1章 响应数据和结果视图 1.1返回值分类 1.1.1 字符串 1.1.2 void 1.1.3 ModelAndView 1.2转发和重定向 1.2.1 forward 转发 1.2.2 Redi ...

  4. SpringMVC框架个人笔记之响应数据、文件上传

    对应工程为springmvc-response,springmvc-file-upload,springmvc-file-upload-crossweb 1.返回值分类 1.1 字符串 //respo ...

  5. Spring MVC 响应数据、作用域对象

    紧耦方式完成响应: 使用:在单元方法的形参中声明request对象或者response对象,使用request对象完成转发,使用response对象完成直接响应或者重定向. 注意:使用这两种方式,单元 ...

  6. 快速学习-处理响应数据

    第5章 处理响应数据 5.1 SpringMVC 输出模型数据概述 5.1.1提供了以下几种途径输出模型数据 ModelAndView: 处理方法返回值类型为 ModelAndView 时, 方法体即 ...

  7. HTTP API响应数据规范整理

    2019独角兽企业重金招聘Python工程师标准>>> 关于作者 马隆博(Lenbo Ma),Java,Javascript Blog: http://mlongbo.com E-M ...

  8. SAP Spartacus里unit list tree的页面显示和后台响应数据的对应关系

    如下图所示: 页面数据显示如下,其中Rustic包含6个直接子节点,分别是Rustic Retail,Rustic Services和test1-test4. 后台SAP Commerce Cloud ...

  9. ASP.NET Web API 记录请求响应数据到日志的一个方法

    原文:ASP.NET Web API 记录请求响应数据到日志的一个方法 原文:http://blog.bossma.cn/dotnet/asp-net-web-api-log-request-resp ...

最新文章

  1. 软件测试人员必备Linux命令(初、中、高级)
  2. matlab节约里程法_芳烃产业链里程碑:唐山旭阳30万吨/年苯乙烯项目一次性开车成功...
  3. 删除mysql的root用户恢复方法
  4. golang两种请求http的方式
  5. 网管日志-06.07.12
  6. 基于PCL实现欧式聚类提取
  7. Fiddler实现IOS手机抓取https报文
  8. JAVA自定义Mybatis注解
  9. 互动媒体设计之好玩儿的游戏(屁民科普)
  10. 阅读笔记——凤凰架构(第1章)
  11. bootstrap 检验 法 原理_系统发育分析背后的几种算法—距离法
  12. 什么是视频分配器 编码器
  13. 22.数组和指针的姻缘
  14. python+Selenium自动化操作Chrome模拟手机浏览器
  15. FL Studio水果2023版本更新下载汉化教程
  16. 戴尔在哪看计算机的显卡,戴尔电脑显卡天梯图,2018dell电脑显卡天梯图新版
  17. 要嫁就嫁个37度男人
  18. 仿花瓣网html模板,仿花瓣网的自动悬浮导航效果 jquery
  19. Mybatisplus 分页查询时,禁止自动统计总数
  20. 物料分类层级-Merchandise category hierarchies

热门文章

  1. java 判断客户端_javaweb服务端判断客户端使用的是手机还是电脑访问
  2. arp linux 清空_Linux怎么清理ARP缓存
  3. 未定义变量: data_三、变量声明
  4. Android app 标签,android 获取APP的唯一标识applicationId的实例
  5. 简述osi参考模型各层主要功能_OSI网络模型
  6. 计算机存储技术及应用,计算机数据安全存储技术及应用
  7. Linux内核权限维持,Linux权限维持笔记
  8. 计算机控制用户自己编写什么软件吗,计算机控制软件技术基础.ppt
  9. java 素数乘积,求助2424379123 = 两个素数的乘积,求这两个素数?
  10. rabbitmq进阶一