SpringMVC中Controller層獲取前端請(qǐng)求參數(shù)的方式匯總
1、SpringMVC自動(dòng)綁定
在controller層方法中定義形參,若請(qǐng)求時(shí)參數(shù)名、參數(shù)類型相同,則SpringMVC會(huì)自動(dòng)綁定。
/**
* @description: 測(cè)試springmvc自動(dòng)綁定
* @author: Vinci
* @date: 2023/8/23 16:32
**/
@GetMapping("/automaticallyBindParameters")
public String automaticallyBindParameters(String message,String test){
return "message="+message + ",test="+test;
}下面使用PostMan進(jìn)行測(cè)試發(fā)現(xiàn),無(wú)論是將參數(shù)直接拼接到URL還是寫在form-data里;只要參數(shù)類型和參數(shù)名與方法形參相同,則會(huì)自動(dòng)綁定


2、使用@RequestParam 注解進(jìn)行接收
當(dāng)controller層中的方法形參名與請(qǐng)求參數(shù)名不同時(shí),可使用@RequestParam進(jìn)行映射
@RequestParam中的value屬性指定請(qǐng)求參數(shù)名;
required屬性指定該參數(shù)是否是必須傳入的,默認(rèn)是true(必須傳入) ;
defaultValue屬性來(lái)指定當(dāng)前參數(shù)的默認(rèn)值(當(dāng)形參沒(méi)有傳入值時(shí)生效)
/**
* @description: 測(cè)試@RequestParam注解
* @author: Vinci
* @date: 2023/8/24 8:28
**/
@GetMapping("/testRequestParam")
public String testRequestParam(
@RequestParam(value = "number",required = false,defaultValue = "1") int i
){
return "number=" + i;
}接下來(lái)使用PostMan進(jìn)行測(cè)試發(fā)現(xiàn),傳值則接收到值,不傳值則使用默認(rèn)值


3、@RequestBody注解
@RequestBody 注解 可將 JSON數(shù)據(jù) 轉(zhuǎn)為 Bean對(duì)象, 與@ResponseBody注解作用相反
(1) 使用實(shí)體來(lái)接收J(rèn)SON
創(chuàng)建實(shí)體對(duì)象
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private String id;
private String username;
private String password;
}使用RequestBody接收
/**
* @description: 使用實(shí)體接收J(rèn)SON
* @author: Vinci
* @date: 2023/8/24 9:01
**/
@GetMapping("/testReceiveJson")
public String testReceiveJson(@RequestBody User user){
return user.toString();
}PostMan測(cè)試結(jié)果

(2)使用 Map 集合接收J(rèn)SON
/**
* @description: 使用Map接收J(rèn)SON
* @author: Vinci
* @date: 2023/8/24 9:15
**/
@GetMapping("/testMapReceiveJson")
public String testMapReceiveJson(@RequestBody Map<String,Object> maps){
return maps.toString();
}PostMan測(cè)試結(jié)果

(3) 使用 List集合接收J(rèn)SON數(shù)組
/**
* @description: 使用List集合接收J(rèn)SON數(shù)組
* @author: Vinci
* @date: 2023/8/24 9:17
**/
@GetMapping("/testListJson")
public String testListJson(@RequestBody List<User> users){
return users.toString();
}PostMan測(cè)試結(jié)果

4、@PathVariable 注解
可以使用@PathVariable注解獲取url地址欄指定位置參數(shù),url中的參數(shù)名需和controller形參一致,或是使用@PathVariable注解的value屬性進(jìn)行映射,在寫@XXXMapping注解中的url時(shí)參數(shù)名需要使用 { } 括起來(lái)
/**
* @description: 使用@PathVariable注解獲取地址欄指定位置參數(shù)
* @author: Vinci
* @date: 2023/8/24 9:32
**/
@GetMapping("/testGetAddressBarParameters/{id}")
public String addressBarParameters(@PathVariable int id){
return String.valueOf(id);
}PostMan測(cè)試結(jié)果

到此這篇關(guān)于SpringMVC中Controller層獲取前端請(qǐng)求參數(shù)的幾種方式的文章就介紹到這了,更多相關(guān)SpringMVC Controller層獲取前端請(qǐng)求參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot項(xiàng)目關(guān)閉swagger如何防止漏洞掃描
這篇文章主要介紹了springboot項(xiàng)目關(guān)閉swagger如何防止漏洞掃描,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-05-05
Spring MVC利用Swagger2如何構(gòu)建動(dòng)態(tài)RESTful API詳解
這篇文章主要給大家介紹了關(guān)于在Spring MVC中利用Swagger2如何構(gòu)建動(dòng)態(tài)RESTful API的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10
java實(shí)現(xiàn)簡(jiǎn)易版圖形界面計(jì)算器
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)易版圖形界面計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05
Java微信公眾平臺(tái)開(kāi)發(fā)(13) 微信JSSDK中Config配置
這篇文章主要為大家詳細(xì)介紹了Java微信公眾平臺(tái)開(kāi)發(fā)第十三步,微信JSSDK中Config配置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
SpringBoot jackson 精度處理問(wèn)題解決
由于JavaScript處理的最大數(shù)值限制,較大的雪花ID在JS中容易溢出,為解決此問(wèn)題,可在SpringMVC或SpringBoot中使用@RequestBody注解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10

