文档章节

Spring MVC ResponseBody

博为峰教研组
 博为峰教研组
发布于 2016/12/07 19:26
字数 311
阅读 35
收藏 1

上一节小博老师跟大家一起学习了RequestBody注解的适用情况,了解了在什么情况下使用以及如何使用RequestBody注解。这一节小博老师继续给大家讲解Controller方法上的另一个注解ResponseBody。

@ResponseBody注解用于Controller方法的返回对象上,通过适当的HttpMessageConverter把返回对象转换为指定格式,然后写入到Response对象的body数据区,返回给客户端。

适用场景

适用于返回数据是json、xml等格式。如果是html页面(或者html标签),则不适合使用ResponseBody注解。

工作原理

1. 解析根据Request对象header部分的Accept属性,获取属性内的类型(以“,”隔开)

2. 根据按accept中的所有类型,遍历所有的HttpMessageConverter

3. 找到匹配的HttpMessageConverter后,调用相应方法处理返回对象

替代方案

如果返回的不是对象,而是json字符串,则不需要使用ResponseBody注解,可以直接输出到body区域,如:

response.setContentType("application/json; charset=UTF-8");

response.getWriter().print(“{\”name\”:\”boweifeng\”}”);

实例

@RequestMapping(value = "/bwf/login", method = RequestMethod.POST)  

    public  @ResponseBody Person login(@RequestBody Boweifeng bwf){

return bwf;  

}

其中Boweifeng是一个POJO类。

附录:默认的HttpMessageConverter协议转换器

© 著作权归作者所有

共有 人打赏支持
博为峰教研组
粉丝 50
博文 1224
码字总数 479077
作品 0
黄浦
程序员
私信 提问
Spring MVC中 @ResponseBody 注解是怎么实现的呢?

Spring MVC中 @ResponseBody 注解是怎么实现的呢? Spring MVC中 @ResponseBody 注解是怎么实现的呢? Spring MVC中 @ResponseBody 注解是怎么实现的呢? Spring MVC中 @ResponseBody 注解是...

喻湘东
08/25
129
1
Spring mvc中@Requestmapping参数配置

原文标题[ Spring mvc中@Requestmapping再探] 1) 普通path路径 @RequestMapping(value = "/foos") @ResponseBody public String getFoosBySimplePath() { return "Get some Foos"; } 然后尝试......

guhai2004
2013/10/20
0
0
Spring MVC返回json视图时,如何将对象直接序列化成不带变量名做为根节点

Spring MVC返回json视图时,如何将对象直接序列化成不带变量名做为根节点的 json 报文 问题 问题描述起来比较拗口,其实就是用Spring MVC时,如何将对象映射成 json 报文时不把对象作为json的...

Tek_Eternal
2015/03/01
0
1
SpringMVC 返回中文字符串时乱码

SpringMVC的@ResponseBody注解可以将请求方法返回的对象直接转换成JSON对象,但是当返回值是String的时候,中文会乱码,原因是因为其中字符串转换和对象转换用的是两个转换器,而String的转换...

费氏家族
2017/10/30
0
0
struts2.0和Spring MVC

Spring MVC 和 Struts2 我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置。spring3 mvc可以认为已经100%零配置了(除了配置spring mvc-servlet.xml外)。 Spring MVC和S...

耿中华
2014/09/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

开源 serverless 产品原理剖析(二) - Fission

背景 本文是开源 serverless 产品原理剖析系列文章的第二篇,关于 serverless 背景知识的介绍可参考文章开源 serverless 产品原理剖析(一) - Kubeless,这里不再赘述。 Fission 简介 Fiss...

阿里云官方博客
1分钟前
0
0
Android面试整理(附答案)

面试,无非都是问上面这些问题(挺多的 - -!),聘请中高级的安卓开发会往深的去问,并且会问一延伸二。以下我先提出几点重点,是面试官基本必问的问题,请一定要去了解! 基础知识 – 四大组...

终端研发部
5分钟前
0
0
Vue 改变数组触发视图更新

Vue 改变数组触发视图更新 以下方法调用会改变原始数组 push(), pop(), shift(), unshift(), splice(), sort(), reverse()push()push() 方法可向数组的末尾添加一个或多个元素,并返回新的...

不负好时光
11分钟前
0
0
计算机系统要素 C5

本章值得一提的是组织计算机的结构。Hack 的指令和数据是分开存储的,因此它的 CPU 有两个 input: IN inM[16], // M value input (M = contents of RAM[A]) instruction[16],...

lionets
27分钟前
0
0
SpringSecurity404需要注意的地方

在使用@RequestMapping的时候路径的值如果写为("auth"),虽然用的时候前面加不加"/"没有区别,但是在配置了SpringSecurity的http.authorizeRequests().antMatchers()时就必须要注意了! 🌰1...

百萬馬力
30分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部