SpringBoot Controller接收參數的幾種方式盤點


本文不再更新,可能存在內容過時的情況,實時更新請移步我的新博客:SpringBoot Controller接收參數的幾種方式盤點

SpringBoot Controller接收參數的幾種常用方式盤點如下:

一、請求路徑參數

1.@PathVariable

適用於url包含請求參數的情況,例如:/common-bsp/bsp/organ/{struIds},后台接收示例:

    @DeleteMapping("/{struIds}")
    public ResponseResult deleteOrgan(@PathVariable String struIds) {
        return service.deleteOrgan(struIds);
    }

2.@RequestParam

適用於Get請求,將參數放置於請求地址后面的情況,例如:userEdit.html?operaType=add,后台接收:

    @GetMapping(value = "/struExtAndOrgan")
    public ResponseResult getStruExtAndOrgan(@RequestParam HashMap<String, Object> parameters) {
        return pubStruExtService.getStruExtAndOrgan(parameters);
    }

3.@ModelAttribute

適用於從Form表單或URL參數中獲取(實際上,不用此注解也能拿到pubOrgan對象)。

    @GetMapping("/organs")
    public ResponseResult queryOrgans(@ModelAttribute PubOrgan pubOrgan) {
        ResponseResult responseResult = new ResponseResult(service.select(pubOrgan));
        return responseResult;
    }

更多@ModelAttribute注解用法參考:全面解析Spring中@ModelAttribute注解的用法

二、Body參數

1.@RequestBody

@PostMapping
public ResponseResult addNextLevel(@RequestBody PubOrgan pubOrgan) {
    return service.addNextLevel(pubOrgan);
}

類似的也可以像下面這樣:

@PostMapping
public ResponseResult addNextLevel(@RequestBody HashMap<String, Object> parameters) {
    return service.addNextLevel(parameters);
}

2.無注解

@PostMapping
public ResponseResult addNextLevel(PubOrgan pubOrgan) {
    return service.addNextLevel(pubOrgan);
}

三、請求頭參數以及Cookie的獲取

需要借助@RequestHeader@CookieValue注解:

@GetMapping("/demo3")
public void demo3(@RequestHeader(name = "myHeader") String myHeader,
        @CookieValue(name = "myCookie") String myCookie) {
    System.out.println("myHeader=" + myHeader);
    System.out.println("myCookie=" + myCookie);
}

或者

@GetMapping("/demo3")
public void demo3(HttpServletRequest request) {
    System.out.println(request.getHeader("myHeader"));
    for (Cookie cookie : request.getCookies()) {
        if ("myCookie".equals(cookie.getName())) {
            System.out.println(cookie.getValue());
        }
    }
}

本文不再更新,可能存在內容過時的情況,實時更新請移步我的新博客:SpringBoot Controller接收參數的幾種方式盤點


免責聲明!

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



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