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