文档章节

Spring MVC ResponseBody

博为峰教研组
 博为峰教研组
发布于 2017/03/14 19:10
字数 311
阅读 12
收藏 0

上一节小博老师跟大家一起学习了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协议转换器

© 著作权归作者所有

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

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

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

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

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

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

Tek_Eternal
2015/03/01
1K
1
【Spring boot实践】Spring boot下的Spring MVC

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Rsx/article/details/89194640 文章目录 Spring MVC的几种注解 Controller注解 @Controller注解是在Spring的o...

不专业得Cook
04/15
0
0
SpringMVC 返回中文字符串时乱码

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

费氏家族
2017/10/30
41
0

没有更多内容

加载失败,请刷新页面

加载更多

iptables删除命令中的相关问题

最近在做一个中间件的配置工作,在配置iptables的时候,当用户想删除EIP(即释放当前连接),发现使用iptables的相关命令会提示错误。iptables: Bad rule (does a matching rule exist in t...

xiangyunyan
26分钟前
2
0
IT兄弟连 HTML5教程 HTML5表单 新增的表单属性1

HTML5 Input表单为<form>和<input>标签添加了几个新属性,属性如表1。 1 autocomplete属性 autocomplete属性规定form或input域应该拥有自动完成功能,当用户在自动完成域中开始输入时,浏览器...

老码农的一亩三分地
54分钟前
5
0
OSChina 周五乱弹 —— 葛优理论+1

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @这次装个文艺青年吧 :#今日歌曲推荐# 分享米津玄師的单曲《LOSER》: mv中的舞蹈诡异却又美丽,如此随性怕是难再跳出第二次…… 《LOSER》-...

小小编辑
今天
1K
19
nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部