SpringBoot在Controller層接收參數(shù)的n種姿勢(shì)(超詳細(xì))
前言
在工作中,比如要實(shí)現(xiàn)一個(gè)功能,前端傳什么參數(shù),后端的controller層中怎么接收參數(shù) ,封裝成了什么實(shí)體對(duì)象,有些參數(shù)是在URL上使用,有些參數(shù)是在body上使用,service層中做了什么邏輯,調(diào)用dao層的sql怎么寫(xiě)的,前端傳的參數(shù),后端用controller中的一個(gè)方法來(lái)接收請(qǐng)求這些都是我們需要思考的邏輯!
下面重點(diǎn)講下SpringBoot接收請(qǐng)求的n種姿勢(shì),建議收藏哦~
接收get請(qǐng)求
(1)get請(qǐng)求無(wú)參數(shù)
@RestController
@RequestMapping("book")
public class BookController {
@Resource
private BookService bookService;
/**
* 按照條件獲取書(shū)籍信息
* @param bookParams
* @return
*/
@GetMapping("/getBookLists")
@ResponseBody
public CommonResponse<List<Book>> getBookLists(BookParams bookParams) {
// 按照查詢(xún)條件分頁(yè)查詢(xún)書(shū)籍
List<Book> books = bookService.getBookList(bookParams);
CommonResponse response = CommonResponse.successInstance(books);
return response;
}
}獲取參數(shù)方式1:http://localhost:9527/book/getBookLists這種方式的請(qǐng)求,不帶參數(shù)

(2)get請(qǐng)求問(wèn)號(hào)拼的參數(shù)
使用@RequestParam來(lái)取問(wèn)號(hào)后面拼接的參數(shù),告訴springboot 這個(gè)user對(duì)應(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問(wèn)號(hào)拼接的參數(shù)

(3)get請(qǐng)求路徑URL參數(shù)@PathVariable是取url中的變量 ,會(huì)自動(dòng)進(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請(qǐng)求
(1) 請(qǐng)求的參數(shù)是json格式 ,各參數(shù)名與實(shí)體類(lèi)定義的字段一致@RequestBody將參數(shù)映射為一個(gè)java對(duì)象
@PostMapping("/post/same")
public String same(@RequestBody Users users){
System.out.println("JSON 接到的:"+users.toString());
return "JSON 接到的:"+users.toString();
}獲取參數(shù)方式1:post請(qǐng)求JSON數(shù)據(jù)格式,各參數(shù)名與實(shí)體類(lèi)定義的字段一樣

(2)請(qǐng)求JSON數(shù)據(jù)格式,各參數(shù)名與實(shí)體類(lèi)定義的字段完全不一樣(需要引入fastJson依賴(lài))
<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請(qǐng)求JSON數(shù)據(jù)格式,各參數(shù)名與POJO定義的字段完全不一樣(需要引入fastJson依賴(lài))

(3)post請(qǐng)求的參數(shù)名都對(duì)應(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot在接收參數(shù)的七種方式詳解
- SpringBoot Controller接收參數(shù)的幾種常用方式
- SpringBoot開(kāi)發(fā)詳解之Controller接收參數(shù)及參數(shù)校驗(yàn)
- SpringBoot實(shí)現(xiàn)前后端、json數(shù)據(jù)交互以及Controller接收參數(shù)的幾種常用方式
- Springboot?接口需要接收參數(shù)類(lèi)型是數(shù)組問(wèn)題
- 詳解SpringBoot Controller接收參數(shù)的幾種常用方式
- SpringBoot中Get請(qǐng)求和POST請(qǐng)求接收參數(shù)示例詳解
相關(guān)文章
SpringBoot項(xiàng)目yml配置文件不自動(dòng)提示解決方案
這篇文章主要介紹了SpringBoot項(xiàng)目配置文件.yaml/.yml文件編寫(xiě)時(shí)沒(méi)有自動(dòng)提示的解決方案,文章通過(guò)圖文結(jié)合的方式給大家講解的非常詳細(xì),需要的朋友可以參考下2024-06-06
Nacos集群模式下服務(wù)無(wú)法注冊(cè)問(wèn)題
這篇文章主要介紹了Nacos集群模式下服務(wù)無(wú)法注冊(cè)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
快速校驗(yàn)實(shí)體類(lèi)時(shí),@Valid,@Validated,@NotNull注解無(wú)效的解決
這篇文章主要介紹了快速校驗(yàn)實(shí)體類(lèi)時(shí),@Valid,@Validated,@NotNull注解無(wú)效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
Java的JDBC編程使用之連接Mysql數(shù)據(jù)庫(kù)
這篇文章主要給大家介紹了關(guān)于Java的JDBC編程使用之連接Mysql數(shù)據(jù)庫(kù)的相關(guān)資料,JDBC是一種用于執(zhí)行SQL語(yǔ)句的Java?API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪(fǎng)問(wèn),需要的朋友可以參考下2023-12-12
MySQL數(shù)據(jù)文件直接通過(guò)拷貝備份與恢復(fù)的操作方法
這篇文章主要介紹了MySQL數(shù)據(jù)文件直接通過(guò)拷貝備份與恢復(fù)的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
java中關(guān)于getProperties方法的使用
這篇文章主要介紹了java中關(guān)于getProperties方法的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
基于Java中最常用的集合類(lèi)框架之HashMap(詳解)
下面小編就為大家?guī)?lái)一篇基于Java中最常用的集合類(lèi)框架之HashMap(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11

