前面几篇文章重点说明了一下怎么从前台传递参数到目标方法,还没有说怎么把结果返回给前台。本篇来讲述一下spring mvc怎么返回结果数据。

从使用形式上看,有以下几种方式:ModelAndView、Map、Model,这几种方式都可以返回数据到前台,本质上来看都是通过map的形式返回数据的。本系列文章着重于使用,深层次的原因,感兴趣的同志可以去调适源代码,这里只是结合使用方式,做简单的样例和分析。

1、ModelAndView的使用

/*** 方法的返回值可以是ModelAndView类型,它可以包含视图和模型信息* spring mvc会把模型信息放入到request域对象中,可以跟踪源码调试* 这个类org.springframework.web.servlet.view.AbstractView* 这个方法exposeModelAsRequestAttributes* @return*/
@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView() {ModelAndView modelAndView = new ModelAndView("success");modelAndView.addObject("name", "Jack use ModelAndView");return modelAndView;
}

2、Map的使用

/*** 使用map返回数据,实际上是实例化了一个* org.springframework.validation.support.BindingAwareModelMap* @param map* @return*/
@RequestMapping("/testMap")
public String testMap(Map<String, Object> map) {System.out.println(map.getClass().getName());map.put("name", "Jack use Map");return "success";
}

3、Model的使用,本质上与map一样

/*** 使用model和使用map一样,都是实例化了一个* org.springframework.validation.support.BindingAwareModelMap* @param model* @return*/
@RequestMapping("/testModel")
public String testModel(Model model) {System.out.println(model.getClass().getName());model.addAttribute("name", "Jack use Model");return "success";
}

4、SessionAttributes的使用,可以把数据存放到session域中去,有两个属性,value和types,value执行需要放到会话中的属性的属性名,types指定需要放到会话中的属性的类型。

在类上添加注解:

@SessionAttributes(value = {"user"}, types = {String.class})

目标方法的定义

/*** 注解SessionAttribute可以通过属性名指定需要放到会话中的属性,实际上通过value属性* 还可以通过types指定哪些类型的属性需要放到会话中去* 但是该注解只能用于类上* @param map* @return*/
@RequestMapping("/testSessionAttributes")
public String testSessionAttributes(Map<String, Object> map) {User user = new User();user.setAge(15);user.setUserName("lxy");map.put("user", user);map.put("name", "jack in sessionAttribute");return "success";
}

项目源代码:

https://git.oschina.net/acesdream/spring-mvc

转载于:https://blog.51cto.com/acesdream/1907888

六、Spring MVC之返回数据相关推荐

  1. Spring MVC Ajax返回中文乱码

    因为Spring MVC中返回json要使用@ResponseBody注解,而在Spring源码中这个注解的默认编码是"iso-8859-1",所以传中文的话会乱码.解决办法是,直 ...

  2. Spring MVC中返回JSON数据的几种方式

    我们都知道Spring MVC 的Controller方法中默认可以返回ModeAndView 和String 类型,返回的这两种类型数据是被DispatcherServlet拿来给到视图解析器进行继 ...

  3. Spring MVC Formatter(数据格式化)详解

    Spring MVC 框架的 Formatter<T> 与 Converter<S,T> 一样,也是一个可以将一种数据类型转换成另一种数据类型的接口.不同的是,Formatte ...

  4. Spring MVC(4):数据校验

    Spring MVC数据校验 一般来说,准许开发中的 DRY 原则,对于Java程序中的数据校验逻辑和相应的域模型会进行绑定,将代码逻辑集中管理: Spring 在使用DataBinder 对数据进行 ...

  5. Spring MVC框架的数据验证

    用户的输入一般是随意的,为了保证数据的合法性,数据验证是所有Web应用必须处理的问题.在Spring MVC框架中有两种方法可以验证输入数据,一种是利用Spring自带的验证框架,另一种是利用JSR ...

  6. jax-rs jax-ws_JAX-RS 2.x与Spring MVC:返回对象列表的XML表示

    jax-rs jax-ws JSON是所有REST * API的王者,但是您仍然可能需要公开多种表示形式,包括XML. 使用JAX-RS和Spring MVC都非常简单. 实际上,唯一要做的就是用JA ...

  7. JAX-RS 2.x与Spring MVC:返回对象列表的XML表示

    JSON是所有REST * API的王者,但是您仍然可能需要公开多种表示形式,包括XML. 使用JAX-RS和Spring MVC都非常简单. 实际上,唯一要做的就是用JAXB注释对从API调用返回的 ...

  8. spring mvc 接收页面数据

    目录 1. 基本类型的数据封装 2. pojo(bean)类型的封装 3. 数组类型 4. list集合类型 1. 基本类型的数据封装 //http://localhost:8080/spring_m ...

  9. spring MVC之返回JSON数据(Spring3.0 MVC+Jackson+AJAX)

    参考: http://angelbill3.iteye.com/blog/1985075 问题:在进行springmvc返回json数据的时候报如下错误:用上面的controller,访问:http: ...

最新文章

  1. 【若依(ruoyi)】字典管理
  2. MooTools教程(5):事件处理
  3. Spring : ConcurrentMapCacheManager
  4. Webpack打包构建太慢了?试试几个方法
  5. android 百分比loading,牛逼的loading加载效果
  6. python地理空间分析——构建SimpleGIS
  7. 现在手机屏幕为什么都这么大?
  8. python随机抽号_Python基础:手把手以实例教你学随机数产生和字符/ASCII码转换
  9. Shell脚本里的双冒号是什么意思
  10. 最强大的iptv m3u8 直播源手机检测工具,批量发现问题直播源
  11. 07 巧算指数温度--参考即可不用算
  12. Python实现批量自动发工资条
  13. 文档管理利器--云脉文档自动分类快速检索
  14. 牛牛的DRB迷宫II
  15. 用A-Spice思路解读“西门庆和潘金莲的不可描述之事”,不信你看不懂
  16. Ubuntu20.04+Nvidia RTX 3060 显卡驱动安装
  17. 华为AirEngine 5762S-11面板AP配置
  18. 激光测距仪传感器,基于EFM32控制器开发设计_方案
  19. 将idea初学者配置_初学者怪胎:如何将ISO映像刻录到光盘
  20. 怎么用Folx下载制作短视频所用的素材

热门文章

  1. c语言的返回类型是指针变量吗,C语言-指针类型
  2. CSS基础汇总——点击标题跳转详细博客【学习笔记】
  3. C++冒泡排序(包含初级、正宗及改进三种实现)
  4. linux 格式化 lvm2,LVM2
  5. bigdecimal divide四舍五入_BigDecimal 四则运算
  6. 快速排序实现(附原理参考资料和代码实现关键点描述)
  7. php foreach 单箭头,PHP Foreach循环具有单个元素
  8. ios逆向和java_逆向,安卓简单还是IOS简单?
  9. android 沙盒 ios,iOS中的沙盒机制
  10. java onkeydown_java笔记 js onkeypress与onkeydown 事件区别详细说明