Spring MVC ResponseBody

本文介绍了@ResponseBody注解的作用及使用场景,详细解释了其工作原理,并提供了应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值