spring-boot-route(一)Controller接收參數的幾種方式


Controller接收參數的常用方式總體可以分為三類。第一類是Get請求通過拼接url進行傳遞,第二類是Post請求通過請求體進行傳遞,第三類是通過請求頭部進行參數傳遞。

1 @PathVariable接收參數

請求方式:localhost:7001/param/123

請求示例:

代碼示例:

@GetMapping("{id}")
public String getPathVariable(@PathVariable String id){
    return "id="+id;
}

2 @RequestParam接收參數

使用這個注解需要注意兩個點,一是加了這個參數后則請求中必須傳遞這個參數,二是@RequestParam這個注解可以指定名字,請求參數必須和指定的這個名字相同,如果不指定,則默認為具體參數名。

請求方式:localhost:7001/param/getParam?myId=18

請求示例:

代碼示例:

@GetMapping("getParam")
public String getRequestParam(@RequestParam("myId") String id){
    return "id="+id;
}

3 無注解傳參

這種方式和2對比,最大的區別就是這個參數不是必傳的,請求路徑上可以不傳遞。

請求方式:localhost:7001/param/getString?id=18

請求示例:

代碼示例:

@GetMapping("getString")
public String getString(String id){
    return "id="+id;
}

4 HttpServletRequest接收參數

請求方式:localhost:7001/param/getRequest?id=18

請求示例:

代碼示例:

@GetMapping("getRequest")
public String getRequest(HttpServletRequest request){
    String id = request.getParameter("id");
    return "id="+id;
}

5 @RequestBody接收請求體參數

這種方式一般用來傳遞實體對象,加了這個注解后,參數也是必傳的。

請求方式:{"id":18}

請求示例:

代碼示例:

@PostMapping("getBody")
public String getBody(@RequestBody String id){
    return "id="+id;
}

6 @RequestHeader接收請求頭參數

請求示例:

代碼示例:

@PostMapping("getHeader")
public String getHeader(@RequestHeader String id){
    return "id="+id;
}

本文示例代碼已上傳至github,點個star支持一下!

Spring Boot系列教程目錄

spring-boot-route(一)Controller接收參數的幾種方式

spring-boot-route(二)讀取配置文件的幾種方式

spring-boot-route(三)實現多文件上傳

spring-boot-route(四)全局異常處理

spring-boot-route(五)整合swagger生成接口文檔

spring-boot-route(六)整合JApiDocs生成接口文檔

spring-boot-route(七)整合jdbcTemplate操作數據庫

spring-boot-route(八)整合mybatis操作數據庫

spring-boot-route(九)整合JPA操作數據庫

spring-boot-route(十)多數據源切換

spring-boot-route(十一)數據庫配置信息加密

spring-boot-route(十二)整合redis做為緩存

spring-boot-route(十三)整合RabbitMQ

spring-boot-route(十四)整合Kafka

spring-boot-route(十五)整合RocketMQ

spring-boot-route(十六)使用logback生產日志文件

spring-boot-route(十七)使用aop記錄操作日志

spring-boot-route(十八)spring-boot-adtuator監控應用

spring-boot-route(十九)spring-boot-admin監控服務

spring-boot-route(二十)Spring Task實現簡單定時任務

spring-boot-route(二十一)quartz實現動態定時任務

spring-boot-route(二十二)實現郵件發送功能

spring-boot-route(二十三)開發微信公眾號

spring-boot-route(二十四)分布式session的一致性處理

spring-boot-route(二十五)兩行代碼實現國際化

spring-boot-route(二十六)整合webSocket

這個系列的文章都是工作中頻繁用到的知識,學完這個系列,應付日常開發綽綽有余。如果還想了解其他內容,掃面下方二維碼告訴我,我會進一步完善這個系列的文章!


免責聲明!

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



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