zoukankan      html  css  js  c++  java
  • @responsebody的作用以及produce配置

    1、

      @ResponseBody注解的作用是将controller的方法返回的对象 通过适当的转换器 转换为指定的格式之后,写入到response对象的body区(响应体中),通常用来返回JSON数据或者是XML。

      数据,需要注意的呢,在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,它的效果等同于通过response对象输出指定格式的数据。

           这里还要着重强调一下,要通过@ResponseBody 注解 将返回的json字符串放入响应体中,然后在前台js才能拿到json字符串进行解析,如果不加,响应体中就没有放入json字符串,前台自然是拿不到数据的,希望大家别理解错。

    2、  

      @RequestMapping("/login")
      @ResponseBody
      public User login(User user){
        return user;
      }
      User字段:userName pwd;
      那么在前台接收到的数据为:'{"userName":"xxx","pwd":"xxx"}'

      效果等同于如下代码:
      @RequestMapping("/login")
      public void login(User user, HttpServletResponse response){

                  //通过response对象输出指定格式的数据
        response.getWriter.write(JSONObject.fromObject(user).toString());
      }

    3.

    注解RequestMapping中produces属性可以设置返回数据的类型以及编码,可以是json或者xml:

    @RequestMapping(value="/xxx",produces = {"application/json;charset=UTF-8"})
    或
    @RequestMapping(value="/xxx",produces = {"application/xml;charset=UTF-8"})

    但是必须要和@ResponseBody注解一起使用才可以,不加@ResponseBody注解相当于按照和返回String同名jsp页面解析自然就会报错。如果返过来,不加produces属性,只有@ResponseBody注解的话也是没有问题的,

  • 相关阅读:
    【LeetCode】17. Letter Combinations of a Phone Number
    【LeetCode】16. 3Sum Closest
    【LeetCode】15. 3Sum 三个数和为0
    【LeetCode】14. Longest Common Prefix 最长前缀子串
    【LeetCode】13. Roman to Integer 罗马数字转整数
    【LeetCode】12. Integer to Roman 整型数转罗马数
    【LeetCode】11. Container With Most Water
    【LeetCode】10. Regular Expression Matching
    Models of good programmer
    RSA Algorithm
  • 原文地址:https://www.cnblogs.com/jasenin/p/12943429.html
Copyright © 2011-2022 走看看