springboot controller參數(shù)注入方式
基本類型參數(shù)
以上為例,接收基本類型參數(shù)時(shí),可以把 name 和 age 封裝進(jìn)對(duì)象,也可以不封裝,執(zhí)行結(jié)果是一樣的。
@RequestParam 也可以不用,只要接收的參數(shù)名和傳輸?shù)膮?shù)名相等即可。
get post 請(qǐng)求都可。
@PostMapping("/simpleField")
public String simpleField(@RequestParam("name") String name,@RequestParam("age") String age) {
return name + age;
}
不能使用 @RequestBody, @RequestBody 指定參數(shù)接收 json 格式的數(shù)據(jù),只能用封裝類接收參數(shù),錯(cuò)誤使用的示例如下
@PostMapping("/t")
public String t(@RequestBody String a,String b) {
return a + b;
}

接收對(duì)象類型參數(shù)
1.不使用 @RequestBody
前端傳輸參數(shù)格式如 postman 所示,只需要參數(shù)名稱能夠?qū)?yīng)即可,如果屬性是對(duì)象,則使用.對(duì)象屬性名來(lái)指明屬性,如果屬性是數(shù)組或者集合,則需要加上[下標(biāo)]來(lái)指定下標(biāo)。
get post 請(qǐng)求都行。
@Data
public class Album {
private Integer musicCount;
private String[] musics;
private List<Person> musicians;
private Person[] people;
}
@RestController
@RequestMapping("/test")
public class TestController {
@Resource
private ObjectMapper json;
@PostMapping("/test")
public String test(Album album) throws JsonProcessingException {
return json.writeValueAsString(album);
}
}

2.使用 @RequestBody
@RequestBody指定參數(shù)將接收json數(shù)據(jù)格式,需要把請(qǐng)求頭的 Content-Type 設(shè)置為 application/json,按照上面的例子,前端傳輸?shù)臄?shù)據(jù)格式如下
@RestController
@RequestMapping("/test")
public class TestController {
@Resource
private ObjectMapper json;
@PostMapping("/test")
public String test(@RequestBody Album album) throws JsonProcessingException {
return json.writeValueAsString(album);
}
}

接收對(duì)象類型數(shù)組時(shí)需要在數(shù)組參數(shù)前使用 @RequestBody ,@RequestBody 的作用是接收 json 格式的數(shù)據(jù)封裝成對(duì)象。
不使用 @RequestBody 的話會(huì)報(bào)沒(méi)有默認(rèn)構(gòu)造函數(shù)的異常。
接收基本類型數(shù)組
接收基本類型數(shù)組的方式和接收基本類型一樣,只要接收的參數(shù)名和傳輸?shù)膮?shù)名相等即可。
get post 請(qǐng)求都行。
以下為例,有些前端傳輸?shù)臄?shù)組參數(shù)格式是 ?strs[]=strs1&strs[]=strs2,這種情況下可以在方法參數(shù)前使用 @RequestParam("strs[]") 來(lái)接收參數(shù)
@RestController
@RequestMapping("/test")
public class TestController {
@Resource
private ObjectMapper json;
@PostMapping("/array")
public String array(String[] strs,Integer[] ints) throws JsonProcessingException {
return json.writeValueAsString(strs)+" "+json.writeValueAsString(ints);
}
}

接收基本類型集合
如果直接使用基本類型集合接收數(shù)據(jù),則必須使用 @RequestBody ,不使用 @RequestBody 的話必須把集合封裝進(jìn)類,如本文 接收對(duì)象類型參數(shù) 所示,使用 @RequestBody 的示例如下
@PostMapping("/array")
public String test(@RequestBody List<String> names) throws JsonProcessingException {
return json.writeValueAsString(names);
}

接收對(duì)象類型數(shù)組和集合
接收對(duì)象類型數(shù)組和集合時(shí)如果不封裝進(jìn)實(shí)體類,則必須使用 @RequestBody,封裝進(jìn)實(shí)體類的方式見(jiàn)本文
接收對(duì)象類型參數(shù)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringBoot如何實(shí)現(xiàn)調(diào)用controller和Service層方法
- springboot中的controller參數(shù)映射問(wèn)題小結(jié)
- springboot中Controller內(nèi)文件上傳到本地及阿里云操作方法
- springboot如何通過(guò)controller層實(shí)現(xiàn)頁(yè)面切換
- springboot Controller直接返回String類型帶來(lái)的亂碼問(wèn)題及解決
- SpringBoot之controller參數(shù)校驗(yàn)詳解
- springboot中@RestController注解實(shí)現(xiàn)
- SpringBoot通過(guò)注解監(jiān)測(cè)Controller接口的代碼示例
- SpringBoot中@RestControllerAdvice @ExceptionHandler異常統(tǒng)一處理類失效原因分析
- SpringBoot和MybatisPlus實(shí)現(xiàn)通用Controller示例
相關(guān)文章
java?byte數(shù)組轉(zhuǎn)String的幾種常用方法
在Java中數(shù)組是一種非常常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),它可以用來(lái)存儲(chǔ)多個(gè)相同類型的數(shù)據(jù),有時(shí)候,我們需要將數(shù)組轉(zhuǎn)換為字符串,以便于輸出或者傳遞給其他方法,這篇文章主要給大家介紹了關(guān)于java?byte數(shù)組轉(zhuǎn)String的幾種常用方法,需要的朋友可以參考下2024-09-09
Java執(zhí)行SQL腳本文件到數(shù)據(jù)庫(kù)詳解
這篇文章主要為大家詳細(xì)介紹了Java執(zhí)行SQL腳本文件到數(shù)據(jù)庫(kù)的相關(guān)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
阿里nacos+springboot+dubbo2.7.3統(tǒng)一處理異常的兩種方式
本文主要介紹了阿里nacos+springboot+dubbo2.7.3統(tǒng)一處理異常的兩種方式,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Springboot集成SSE實(shí)現(xiàn)單工通信消息推送流程詳解
SSE簡(jiǎn)單的來(lái)說(shuō)就是服務(wù)器主動(dòng)向前端推送數(shù)據(jù)的一種技術(shù),它是單向的,也就是說(shuō)前端是不能向服務(wù)器發(fā)送數(shù)據(jù)的。SSE適用于消息推送,監(jiān)控等只需要服務(wù)器推送數(shù)據(jù)的場(chǎng)景中,下面是使用Spring Boot來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的模擬向前端推動(dòng)進(jìn)度數(shù)據(jù),前端頁(yè)面接受后展示進(jìn)度條2022-11-11
SpringBoot2.0整合jackson配置日期格式化和反序列化的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot2.0整合jackson配置日期格式化和反序列化的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
springboot配置數(shù)據(jù)庫(kù)密碼特殊字符報(bào)錯(cuò)的解決
這篇文章主要介紹了springboot配置數(shù)據(jù)庫(kù)密碼特殊字符報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Java實(shí)現(xiàn)添加條碼或二維碼到Word文檔
這篇文章主要介紹了如何在Word文檔中添加條碼、二維碼。可在文檔正文段落中添加,也可在頁(yè)眉頁(yè)腳中添加,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧2022-05-05

