SpringBoot在Controller層接收參數(shù)的n種姿勢(超詳細(xì))
前言
在工作中,比如要實(shí)現(xiàn)一個功能,前端傳什么參數(shù),后端的controller
層中怎么接收參數(shù) ,封裝成了什么實(shí)體對象,有些參數(shù)是在URL上使用,有些參數(shù)是在body上使用,service層中做了什么邏輯,調(diào)用dao層的sql怎么寫的,前端傳的參數(shù),后端用controller中的一個方法來接收請求這些都是我們需要思考的邏輯!
下面重點(diǎn)講下SpringBoot
接收請求的n種姿勢,建議收藏哦~
接收get請求
(1)get請求無參數(shù)
@RestController @RequestMapping("book") public class BookController { @Resource private BookService bookService; /** * 按照條件獲取書籍信息 * @param bookParams * @return */ @GetMapping("/getBookLists") @ResponseBody public CommonResponse<List<Book>> getBookLists(BookParams bookParams) { // 按照查詢條件分頁查詢書籍 List<Book> books = bookService.getBookList(bookParams); CommonResponse response = CommonResponse.successInstance(books); return response; } }
獲取參數(shù)方式1:http://localhost:9527/book/getBookLists這種方式的請求,不帶參數(shù)
(2)get請求問號拼的參數(shù)
使用@RequestParam
來取問號后面拼接的參數(shù),告訴springboot 這個user對應(yīng)的就是參數(shù)中的user
@RequestMapping("/get") public void get (@RequestParam(name = "user") String user){ System.out.println("接收到參數(shù):"+user); return "接收到參數(shù):"+user; }
獲取參數(shù)方式2:獲取http://localhost:9527?user=XXX問號拼接的參數(shù)
(3)get請求路徑URL參數(shù)@PathVariable
是取url中的變量 ,會自動進(jìn)行賦值。
@GetMapping("/path/{user}") public String path(@PathVariable(name = "user") String user){ System.out.println("接收到參數(shù):"+user); return "接收到參數(shù):"+user; }
獲取參數(shù)方式3:獲取路徑參數(shù),RestFull風(fēng)格入?yún)?/p>
接收post請求
(1) 請求的參數(shù)是json格式 ,各參數(shù)名與實(shí)體類定義的字段一致@RequestBody
將參數(shù)映射為一個java對象
@PostMapping("/post/same") public String same(@RequestBody Users users){ System.out.println("JSON 接到的:"+users.toString()); return "JSON 接到的:"+users.toString(); }
獲取參數(shù)方式1:post請求JSON數(shù)據(jù)格式,各參數(shù)名與實(shí)體類定義的字段一樣
(2)請求JSON數(shù)據(jù)格式,各參數(shù)名與實(shí)體類定義的字段完全不一樣(需要引入fastJson依賴
)
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.57</version> </dependency>
@PostMapping("/fastJson") public String fastJson(@RequestBody JSONObject param){ System.out.println("JSON :"+param.toJSONString()); return "JSON :"+param.toJSONString(); }
獲取參數(shù)方式2:post請求JSON數(shù)據(jù)格式,各參數(shù)名與POJO定義的字段完全不一樣(需要引入fastJson依賴)
(3)post請求的參數(shù)名都對應(yīng)可以直接獲取
@RequestMapping("/sameParamName") public String sameParamName(String users , String id){ System.out.println("users:"+users+"id: "+id); return "users:"+users+"id: "+id; }
到此這篇關(guān)于SpringBoot在Controller層接收參數(shù)的常用方法(超詳細(xì))的文章就介紹到這了,更多相關(guān)SpringBoot Controller 接收參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot在接收參數(shù)的七種方式詳解
- SpringBoot Controller接收參數(shù)的幾種常用方式
- SpringBoot開發(fā)詳解之Controller接收參數(shù)及參數(shù)校驗(yàn)
- SpringBoot實(shí)現(xiàn)前后端、json數(shù)據(jù)交互以及Controller接收參數(shù)的幾種常用方式
- Springboot?接口需要接收參數(shù)類型是數(shù)組問題
- 詳解SpringBoot Controller接收參數(shù)的幾種常用方式
- SpringBoot中Get請求和POST請求接收參數(shù)示例詳解
相關(guān)文章
如何在SpringBoot中添加攔截器忽略請求URL當(dāng)中的指定字符串
這篇文章主要介紹了在SpringBoot中添加攔截器忽略請求URL當(dāng)中的指定字符串,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08mybatis參數(shù)String與Integer類型的判斷方式
這篇文章主要介紹了mybatis參數(shù)String與Integer類型的判斷方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03詳解Java中字典樹(Trie樹)的圖解與實(shí)現(xiàn)
Trie又稱為前綴樹或字典樹,是一種有序樹,它是一種專門用來處理串匹配的數(shù)據(jù)結(jié)構(gòu)。本文將利用圖解詳細(xì)講解Trie樹的實(shí)現(xiàn),需要的可以參考一下2022-05-05Springboot jdbctemplate整合實(shí)現(xiàn)步驟解析
這篇文章主要介紹了Springboot jdbctemplate整合實(shí)現(xiàn)步驟解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08Maven發(fā)布封裝到中央倉庫時候報(bào)錯:no default secret key
這篇文章主要介紹了Maven發(fā)布封裝到中央倉庫時候報(bào)錯:no default secret key,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12