博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springMVC的@RequestBody注解使用
阅读量:5809 次
发布时间:2019-06-18

本文共 1698 字,大约阅读时间需要 5 分钟。

 如果没有特殊的设置,无论用什么样的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

你可能感兴趣的文章
Linux VSFTP服务器
查看>>
DHCP中继数据包互联网周游记
查看>>
Squid 反向代理服务器配置
查看>>
Java I/O操作
查看>>
Tomcat性能调优
查看>>
项目管理心得
查看>>
Android自学--一篇文章基本掌握所有的常用View组件
查看>>
灰度图像和彩色图像
查看>>
通过vb.net 和NPOI实现对excel的读操作
查看>>
TCP segmentation offload
查看>>
java数据类型
查看>>
数据结构——串的朴素模式和KMP匹配算法
查看>>
FreeMarker-Built-ins for strings
查看>>
验证DataGridView控件的数据输入
查看>>
POJ1033
查看>>
argparse - 命令行选项与参数解析(转)
查看>>
一维数组
查看>>
Linux学习笔记之三
查看>>
Floyd最短路算法
查看>>
Class.forName(String name)方法,到底会触发那个类加载器进行类加载行为?
查看>>