@RequestParam和@PathVariable的區別和使用


請求路徑上的區別:很明顯一個是     https:url ?鍵值對,一個是https:url /參數   ,區別很明顯

@PathVariable主要用於接收http://host:port/path/{參數值}數據。@RequestParam主要用於接收http://host:port/path?參數名=參數值數據,這里后面也可以不跟參數值。

 

@RequestParam用於獲取參數,可獲取?username="sss"這種?后面的參數值

如:訪問路徑為:http://localhost:7012/billing/pay/paySerial?paySerialId=20190821155435120115620216832

    @GetMapping("/paySerial")
//    @RequestMapping(value= "/paySerial",method =RequestMethod.GET)
    public PaySerialRes qryPaySerialDetail(@RequestParam(name = "paySerialId", required = false) String paySerialId) {
        log.info("傳入的id為;{}",paySerialId);
        return paySerialService.qryPaySerialDetail(paySerialId);

當傳入參數的名字和方法中的名字相同時,可以直接@RequestParam String paySerialId,如請求 url:http://localhost:7012/billing/pay/paySerial?paySerialId=20190821155435120115620216832

如果請求的參數名和方法名不一致時:則:@RequestParam(name = "abc"  String paySerialId,這樣子就可以將abc和paySerialId映射上

abc和請求帶過來的參數名一樣,如:http://localhost:7012/billing/pay/paySerial?abc=20190821155435120115620216832;

@RequestParam(value = "paySerialId", required = false, defaultValue = "1")

@RequestParam 支持下面四種參數

defaultValue 如果本次請求沒有攜帶這個參數,或者參數為空,那么就會啟用默認值
name 綁定本次參數的名稱,要跟URL上面的一樣
required 傳入的參數是否必須,默認是true,表示請求中一定要有相應的參數,否則將報404錯誤碼;
value 跟name一樣的作用,是name屬性的一個別名

 

 

 

使用@PathVariable接收參數,參數值需要在url進行占位, 前端傳參的URL:url = “/main/mm/am/${Id}/${name}”

如:http://localhost:7012/billing/pay/paySerial/20190821155435120115620216832

    @GetMapping("/paySerial/{aaaa}")
    public PaySerialRes qryPaySerialDetail(@PathVariable("aaaa") String paySerialId) {
        log.info("傳入的id為;{}",paySerialId);
        return paySerialService.qryPaySerialDetail(paySerialId);
    }

直接寫@PathVariable String paySerialId也是可以的,但是參數名和paySerialId要一致才行,否則就要這樣@PathVariable("aaaa") String paySerialId,建立映射關系,和上面其實差不多

 

PathVariable 注解的required = false 表明參數不是必需的

@PathVariable(name = "paySerialId",required = true) ,不加上name會報錯的,這里的name和value作用應該也是一樣


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM