如果没有特殊的设置,无论用什么样的http请求方法,只要携带body参数,[email protected]
参数是json字符串格式,使用方式有两种
@RequestBody只有一个属性,required默认等于true,如果不设置required属性,就默认必须传body体,否则会报400错误,如果设置了body体,但是没有设置header或者设置了header:content-type!=application/json ,会报415错误
@Controller
@RequestMapping("/springmvc/test/RequestBody")
public class RequestBodyTestController {
@RequestMapping(value="/test3")
@ResponseBodypublic 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"));
}
}
}
第二种:[email protected],请求的时候记得设置header:content-type=application/json ,否则会报415错误,而且json字符串中的参数名要跟对象的属性名相同才能取到值
//定义一个Person类
public classPerson{private intid;privateString name;publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}public intgetId(){returnid;
}public void setId(intid){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