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ì)象屬性名來指明屬性,如果屬性是數(shù)組或者集合,則需要加上[下標(biāo)]來指定下標(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)沒有默認(rèn)構(gòu)造函數(shù)的異常。
接收基本類型數(shù)組
接收基本類型數(shù)組的方式和接收基本類型一樣,只要接收的參數(shù)名和傳輸?shù)膮?shù)名相等即可。
get post 請(qǐng)求都行。
以下為例,有些前端傳輸?shù)臄?shù)組參數(shù)格式是 ?strs[]=strs1&strs[]=strs2,這種情況下可以在方法參數(shù)前使用 @RequestParam("strs[]") 來接收參數(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í)體類的方式見本文
接收對(duì)象類型參數(shù)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringBoot如何實(shí)現(xiàn)調(diào)用controller和Service層方法
- springboot中的controller參數(shù)映射問題小結(jié)
- springboot中Controller內(nèi)文件上傳到本地及阿里云操作方法
- springboot如何通過controller層實(shí)現(xiàn)頁面切換
- springboot Controller直接返回String類型帶來的亂碼問題及解決
- SpringBoot之controller參數(shù)校驗(yàn)詳解
- springboot中@RestController注解實(shí)現(xiàn)
- SpringBoot通過注解監(jiān)測(cè)Controller接口的代碼示例
- SpringBoot中@RestControllerAdvice @ExceptionHandler異常統(tǒng)一處理類失效原因分析
- SpringBoot和MybatisPlus實(shí)現(xiàn)通用Controller示例
相關(guān)文章
一文教你使用Java?Calendar類進(jìn)行日期計(jì)算
在日常開發(fā)中,我們常常需要進(jìn)行日期計(jì)算,比如計(jì)算兩個(gè)日期之間的天數(shù)、月數(shù),在Java中,我們可以使用Java?Calendar類來進(jìn)行日期計(jì)算,下面就跟隨小編一起來學(xué)習(xí)一下吧2023-10-10
Springboot 接口對(duì)接文件及對(duì)象的操作方法
這篇文章主要介紹了Springboot 接口對(duì)接文件及對(duì)象的操作,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
SpringBoot項(xiàng)目啟動(dòng)后再請(qǐng)求遠(yuǎn)程接口的解決方式
Spring?Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來簡化Spring應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等,這篇文章主要介紹了SpringBoot項(xiàng)目啟動(dòng)后再請(qǐng)求遠(yuǎn)程接口的實(shí)現(xiàn)方式?,需要的朋友可以參考下2023-02-02
Spring cloud oauth2如何搭建認(rèn)證資源中心
這篇文章主要介紹了Spring cloud oauth2如何搭建認(rèn)證資源中心,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
解決mapper.xml中resultType映射類型的問題
這篇文章主要介紹了解決mapper.xml中resultType映射類型的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06

