@ResponseBody注解


@ResponseBody 将内容或对象作为 HTTP 响应正文返回,使用@ResponseBody将会跳过视图处理部分,而是调用适合HttpMessageConverter,将返回值写入输出流。

Spring 3.X系列增加了新注解 @ResponseBody , @RequestBody   
@RequestBody 将HTTP请求正文转换为适合的HttpMessageConverter对象。
@ResponseBody 将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMessageConverter的Adapter转换对象,写入输出流。

HttpMessageConverter 接口,需要开启 <mvc:annotation-driven  /> 。  
AnnotationMethodHandlerAdapter 将会初始化7个转换器,可以通过调用 AnnotationMethodHandlerAdapter的 getMessageConverts() 方法来获取转换器的一个集合 List<HttpMessageConverter>  
引用
ByteArrayHttpMessageConverter  
StringHttpMessageConverter  
ResourceHttpMessageConverter  
SourceHttpMessageConverter  
XmlAwareFormHttpMessageConverter  
Jaxb2RootElementHttpMessageConverter  
MappingJacksonHttpMessageConverter
@RequestMapping(value = "/person/profile/{id}", method = RequestMethod.GET)  
public @ResponseBody
Personporfile( @PathVariable("id") int uid){
return new Person(uid,name,status);
}

使用@RequestBody绑定请求对象,Spring会帮你进行协议转换,将Json、Xml协议转换成你需要的对象。
@ResponseBody可以标注任何对象,由Srping完成对象——协议的转换。

http://my.oschina.net/u/1012289/blog/129321


1.如果不配置@ResponseBody,也可以使用response输出数据然后 return null,达到返回json字符串的效果。
String str ="{\"a\":\"中国\",\"b\",:\"日本\",\"c\":\"新加坡\",\"c\":\"美国\"}";
PrintWriter pw = null;
try {
pw = response.getWriter();
pw.write(str);
pw.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

2.方法返回实体类对象

返回结果是json字符串{“属性”:”值”,”属性”:null}实体类对象属性为空时,value为null。
3.方法返回实体类对象集合List
[{“属性”:”值”,”属性“:”值”...},{{“属性”:”值”,”属性“:”值”...},{{“属性”:”值”,”属性“:”值”...},{{“属性”:”值”,”属性“:”值”...}...]
4.方法返回Map集合
{key:{实体类对象属性键值对},key2:{实体类对象属性键值对},key3:{实体类对象属性键值对}}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值