zoukankan      html  css  js  c++  java
  • @RequestBody, @ResponseBody 注解理解

    @RequestBody, @ResponseBody 注解理解

    自己以前没怎么留意过,来实习后公司采用前后端分离的开发方式,前后端拿到的注释都是 json 格式的,这时候 @RequestBody, @ResponseBody 这两个注解就非常好用,下面详细介绍用法:

    @RequestBody

    1. 作用:
    • 该注解用于读取 Request 请求的 body 部分数据,使用系统默认配置的 HttpMessageConverter 进行解析,然后把相应的数据绑定到要返回的对象上;
    • 再把 HttpMessageConverter 返回的对象数据绑定到 controller 中方法的参数上。
    2. 使用时机:
    GET、POST方式提交时, 根据 request header Content-Type 的值来判断:
    • application/x-www-form-urlencoded可选(即非必须,因为这种情况的数据 @RequestParam, @ModelAttribute 也可以处理,当然@RequestBody也能处理);
    • multipart/form-data不能处理(即使用@RequestBody不能处理这种格式的数据);
    • 其他格式:必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);
    PUT 方式提交时, 根据request header Content-Type的值来判断:
    • application/x-www-form-urlencoded必须
    • multipart/form-data不能处理
    • 其他格式:必须
    3. 举个例子:

    也就是说,如果是 json 格式的数据,我们要传入的参数是一个对象,那就必须使用 @RequestBody

    @RequestMapping(value = "/test", Method = RequestMethod.POST, produces = "application/json;charset="UTF-8")
    @ResponseBody
    public JSONObject class Test(@RequestBody Test test) {
        String name = test.getName();
        // 将 name 回显
        Map<String, Object> map = new HashMap<>();
        map.put("name", name);
        JSONObject obj = JSONObject.fromObject(map);
        return obj;
    }
    

    @ResponseBody

    1. 作用:

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

    2. 使用时机:

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

    3. 举个例子:
    @RequestMapping(value = "/test", Method = RequestMethod.POST, produces = "application/json;charset="UTF-8")
    @ResponseBody
    public JSONObject class Test() {
        JSONObject obj = new JSONObject;
        obj.put("test", 1);
        // 将 obj 回显
        return obj;
    }
    

    参考:

    https://blog.csdn.net/walkerJong/article/details/7520896

    完。

  • 相关阅读:
    jQuery
    编程英语
    Javaweb基础案例
    Maven-基础设置教程
    .Net微服务实践(三):Ocelot配置路由和请求聚合
    .Net微服务实践(二):Ocelot介绍和快速开始
    ASP.NET Core技术研究-探秘Host主机启动过程
    Docker安装手册
    HBase文档学习顺序
    考研学习笔记极限与连续笔记顺序
  • 原文地址:https://www.cnblogs.com/weixuqin/p/11373402.html
Copyright © 2011-2022 走看看