spring boot 接收参数 梳理


一段时间备受前后台传参 接参 问题的折磨,记住,忘记,反反复复, 抽时间出来好好梳理记录一下, 以防后面忘了,可以有个地方查询

 

Post传参

1、  参数为单个字符串,用 @RequestBody ,可以接收 非JSON 格式数据, 传输格式可以为JSON(application/json) TEXT(text/plain),XML(application/xml)等

会把传输到后台的全部字符串作为参数进行映射到该参数

@RestController
@RequestMapping("/reqType")
public class RequestTypeController {

    @PostMapping("/post01")
    public String postMethod1(@RequestBody String reqStr) {
        System.out.println(reqStr);
        return reqStr;
    }

}

 

 

2、 多个String参数, @RequestBody 修饰其中某一个, 参数会作为一个字符串映射到被注解修饰的参数,其余的参数会为 null

@PostMapping("/post02")
public List postMethod2(String reqStr1, @RequestBody String reqStr2) {
    System.out.println(reqStr1);
    System.out.println(reqStr2);
    return Arrays.asList(reqStr1, reqStr2);
}

  

 

 

 

 3、 DTO java 类用 @RequestBody 修饰, 不能使用字符串进行传参,也不能以表单形式,必须为JSON格式传输,json key 和属性对不上则无法映射赋值

   @PostMapping("/post03")
    public ReqDto postMethod3(@RequestBody ReqDto reqDto) {
        System.out.println(reqDto.getReqStr1());
        System.out.println(reqDto.getReqStr2());
        return reqDto;
    }
    
    @Data
    class ReqDto{
        private String reqStr1;
        private String reqStr2;
    }

  

 

4、 不用@RequestBody 修饰参数, 只能用 form 表单格式传输, 且参数名称需要对应一致,不一致情况需要用 @RequestParam 进行修正, 

    @PostMapping("/post04")
    public String postMethod4(String reqStr1) {
        System.out.println(reqStr1);
        return reqStr1;
    }

  

 

 

 

 5、 @RequestParam 修饰的参数必须有其名称对应的参数,否则报错; 若@RequestParam 没有修饰,则可不进行对应, 参数为null,不报错

@PostMapping("/post05")
    public String postMethod5(@RequestParam("reqStr3") String reqStr1) {
        System.out.println(reqStr1);
        return reqStr1;
    }

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM