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());
}
}
}
 

 

转载于:https://www.cnblogs.com/zhaijing/p/10337481.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值