zoukankan      html  css  js  c++  java
  • springMVC的@RequestBody注解使用

     如果没有特殊的设置,无论用什么样的http请求方法,只要携带body参数,用@RequestBody都是可以获取到body的内容的

     参数是json字符串格式,使用方式有两种

     @RequestBody只有一个属性,required默认等于true,如果不设置required属性,就默认必须传body体,否则会报400错误,如果注解了对象(注解字符串变量不会),设置了body体,但是没有设置header或者设置了header:content-type!=application/json ,会报415错误

     第一种:使用@RequestBody注解一个字符串变量

    @Controller
    @RequestMapping("/springmvc/test/RequestBody")
    public class RequestBodyTestController {
    @RequestMapping(value="/test3")
        @ResponseBody
        public Result testBody3(@RequestBody(required=false) String person){
            if(person==null){
                return  Result.success("testBody3 test pass,person="+person);
            }else {
                JSONObject jsonObject = JSONObject.parseObject(person);
                return Result.success("testBody3 test pass,username=" + jsonObject.getString("name"));
            }
        }
    }

     

    第二种:使用@RequestBody注解一个对象,请求的时候记得设置header:content-type=application/json ,否则会报415错误,而且json字符串中的参数名要跟对象的属性名相同才能取到值

    //定义一个Person类
    public
    class Person{ private int id; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getId(){ return id; } public void setId(int id){ this.id=id } }
    @Controller
    @RequestMapping("/springmvc/test/RequestBody")
    public class RequestBodyTestController {

    @RequestMapping(value="/test1")

    @ResponseBody
    public Result testBody1(@RequestBody Person person){
    if(person==null){
    return Result.success("test1 test pass,person="+person);
    }else {
    return Result.success("test1 test pass,id="+person.getId()+",username=" + person.getName());
    }
    }
    }
     

  • 相关阅读:
    client-go和golang源码中的技巧
    使用Prometheus监控snmp
    kubernetes client-go解析
    go 语言的一个赋值操作
    使用Prometheus监控bind9的DNS服务
    验证Prometheus alertmanager邮件发送
    JS 监听浏览器各个标签间的切换
    通过案例理解position:relative和position:absolute
    浏览器的统一指针事件:Pointer Event
    Chrome浏览器读写系统剪切板
  • 原文地址:https://www.cnblogs.com/zhaijing/p/10337481.html
Copyright © 2011-2022 走看看