Spring MVC ResponseBody

上一节小博老师跟你们一块儿学习了RequestBody注解的适用状况,了解了在什么状况下使用以及如何使用RequestBody注解。这一节小博老师继续给你们讲解Controller方法上的另外一个注解ResponseBody。html

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

适用场景app

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

工做原理code

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

2. 根据按accept中的全部类型,遍历全部的HttpMessageConverterhtm

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

替代方案blog

若是返回的不是对象,而是json字符串,则不须要使用ResponseBody注解,能够直接输出到body区域,如:ip

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协议转换器

相关文章
相关标签/搜索