@ResponseBody与@RequestBody的区别
作者:tenlee
链接:http://www.jianshu.com/p/7097fea8ce3f( 原创作者文章更详细)
@ResponseBody用法
作用:
该注解用于将Controller的方法返回的对象,根据HTTP Request Header的Accept的内容,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:
返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用.
@RequestMapping("/testResponseBody")
public @ResponseBody Person testResponseBody() {
Person p = new Person();
p.setName("xiaohong");
p.setAge(12);
return p;
}
//返回指定格式的数据
@RequestBody使用
作用:
注解用于将Controller的方法参数,根据HTTP Request Header的content-Type的内容,通过适当的HttpMessageConverter转换为JAVA类
使用时机:
POST或者PUT的数据是JSON格式或者XML格式,而不是普通的键值对形式.
@RequestMapping(value = "/testRequestBody", method= RequestMethod.POST)
public Person testRequestBody(@RequestBody Person p) {
System.out.println("creating a employee:" + p);
return p;
}
//将传进来的参数转换为适当的bean