SpringMvc之参数绑定注解详解之四
2017-04-25 13:02
417 查看
简介:
@RequestBody
作用:i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;
ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
使用时机:
A) GET、POST方式提时, 根据request header Content-Type的值来判断:
application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);
multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);
其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);
B) PUT方式提交时, 根据request header Content-Type的值来判断:
application/x-www-form-urlencoded, 必须;
multipart/form-data, 不能处理;
其他格式, 必须;
说明:request的body部分的数据编码格式由header部分的Content-Type指定;
@ResponseBody
作用:该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:
返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
补充:
MappingJacksonHttpMessageConverter 调用了 objectMapper.writeValue(OutputStream stream, Object)方法,使用@ResponseBody注解返回的对象就传入Object参数内。若返回的对象为已经格式化好的json串时,不使用@RequestBody注解,而应该这样处理:
1、response.setContentType("application/json; charset=UTF-8");
2、response.getWriter().print(jsonStr);
直接输出到body区,然后的视图为void。
来自 http://www.cnblogs.com/FrankLei/p/6579843.html
相关文章推荐
- SpringMvc之参数绑定注解详解
- SpringMvc之参数绑定注解详解
- SpringMVC参数绑定注解详解
- SpringMvc之参数绑定注解详解之一
- springmvc 参数绑定注解详解
- SpringMvc之参数绑定注解详解
- SpringMvc之参数绑定注解详解之二
- SpringMvc之参数绑定注解详解之三
- SpringMvc之参数绑定注解详解
- springmvc(十四)springmvc注解开发-springmvc参数绑定-数组绑定
- JAX-RS:@PathVariable @RequestParam @ModelAttribute等参数绑定注解详解
- springmvc(十五)springmvc注解开发-springmvc参数绑定-list绑定
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
- SpringMVC学习(六)——SpringMVC高级参数绑定与@RequestMapping注解
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
- springmvc注解开发-springmvc参数绑定-包装类型pojo参数绑定
- springMVC注解中@RequestMapping中常用参数value params 以及@RequestParam 详解
- SpringMVC学习(六)——SpringMVC高级参数绑定与@RequestMapping注解
- [转载]SpringBoot系列: SpringMVC 参数绑定注解解析
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解GOODGOOD