SpringMVC中Controller的@ResponseBody注解分析

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

[java]  view plain  copy
  1. @RequestMapping(params="method=view")  
  2. @ResponseBody  
  3. public String view(@RequestParam("id") Long id,  
  4. HttpServletRequest request,   
  5. HttpServletResponse response){  
  6. ...  
  7. return jsonData;  
  8. }  

      如上可以直接返回json字符串。如果不配置 @ResponseBody,也可以使用response输出数据然后 return null,达到返回json字符串的效果。
      @ResponseBody之后返回字符串中中文可能会出现乱码,因为sping mvc默认是text/plain;charset=ISO-8859-1,要支持中需做如下配置:

作用: 

      该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

使用时机:

      返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;


那么只需删除注解:@ResponseBody 便可以返回页面xx.jsp。而且达到了与客户端后台交互的效果。



你可能感兴趣的:(SpringMvc)