@requestBody注解的使用(上)

2022-11-03,

  1、@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。

  2、

    通过@requestBody可以将请求体中的JSON字符串绑定到相应的bean上,当然,也可以将其分别绑定到对应的字符串上。

    例如说以下情况:

    $.ajax({

        url:"/login",

        type:"POST",

        data:'{"userName":"admin","pwd","admin123"}',

        content-type:"application/json charset=utf-8",

        success:function(data){

          alert("request success ! ");

        }

    });

    @requestMapping("/login")

    public void login(@requestBody String userName,@requestBody String
pwd){

      System.out.println(userName+" :"+pwd);

    }

    这种情况是将JSON字符串中的两个变量的值分别赋予了两个字符串,但是呢假如我有一个User类,拥有如下字段:

      String userName;

      String pwd;

    那么上述参数可以改为以下形式:@requestBody User user 这种形式会将JSON字符串中的值赋予user中对应的属性上

    需要注意的是,JSON字符串中的key必须对应user中的属性名,否则是请求不过去的。


 

3、

    在一些特殊情况@requestBody也可以用来处理content-type类型为application/x-www-form-urlcoded的内容,只不过这种方式

    不是很常用,在处理这类请求的时候,@requestBody会将处理结果放到一个MultiValueMap<String,String>中,这种情况一般在

    特殊情况下才会使用,

    例如jQuery easyUI的datagrid请求数据的时候需要使用到这种方式、小型项目只创建一个POJO类的话也可以使用这种接受方式

tips:

https://jingyan.baidu.com/article/624e7459069f4034e8ba5a87.html

@requestBody注解的使用(上)的相关教程结束。

《@requestBody注解的使用(上).doc》

下载本文的Word格式文档,以方便收藏与打印。