1、四種傳參方式
1.1、params
- 傳參格式:?號(hào)傳參,在地址欄上加參數(shù)
http://localhost:8080?參數(shù)名=值&參數(shù)名=值
1.2、body
- 傳參格式:請(qǐng)求體傳參
http://localhost:8080/core/books
form-data的請(qǐng)求是在body中,為key=value格式,同時(shí)可以傳文件,Content-Type為multipart/form-data,后端可以用@RequestParam接收。
1.3、json
json傳參也是在body當(dāng)中,只不過json是一種數(shù)據(jù)格式,后端可以用@RequestBody接收。
1.4、地址欄
地址欄傳參,直接通過/在地址上拼接參數(shù)值,這種方式不需要在地址欄上寫參數(shù)名,后端只需要知道他在地址的哪個(gè)位置傳的參數(shù)就可以拿到值
2、springboot接收參數(shù)的幾種方式
2.1、@RequestParam
-
作用:將指定的請(qǐng)求參數(shù)賦值給方法中的形參
-
接收形式: 一般用于Get請(qǐng)求
-
屬性:
- value:綁定請(qǐng)求的參數(shù)名,默認(rèn)綁定為同名的形參
- required:是否必填,默認(rèn)是true,表示請(qǐng)求中一定要有相應(yīng)的參數(shù),否則將報(bào)400
- defaultValue:設(shè)置默認(rèn)值,表示如果請(qǐng)求中沒有接收到值時(shí)的默認(rèn)值
-
參數(shù)映射:默認(rèn)是以變量名作為前端傳參名稱,但是假如我們注解設(shè)置了名稱,那么參數(shù)名稱以注解當(dāng)中的屬性為準(zhǔn),如果前端傳test而不是test1就會(huì)報(bào)異常文章來源:http://www.zghlxwxcb.cn/news/detail-695477.html
-
示例:文章來源地址http://www.zghlxwxcb.cn/news/detail-695477.html
@GetMapping("/test")
public String test(@RequestParam("test1") String test) {
return msg;
}
- 總結(jié):?號(hào)傳參 的方式,傳單個(gè)參數(shù)的時(shí)候使用;如果傳實(shí)體類或多個(gè)參數(shù)時(shí), 可以不加
@RequstParm
注解;如果加上@RequstParm
注解就意味著前端必須傳值,因?yàn)?required
屬性代表的是否是必填,默認(rèn)為true;
2.2、@PathVariable
- 作用:接收請(qǐng)求路徑中占位符的值
- 接收形式: 一般用于Get請(qǐng)求
- 示例:
@GetMapping("/getInfo/{id}")
public void getInfo(@PathVariable Long id) {
return lxxBooksService.selectLxxBooksById(id);
}
- 總結(jié):
@PathVariable
用于綁定 url 中的占位符,如果不設(shè)置屬性值,默認(rèn)參數(shù)名稱和占位符當(dāng)中的名稱一致,如果不一致就會(huì)報(bào)錯(cuò);一旦設(shè)置屬性值,就要和占位符當(dāng)中的名稱一致
2.3、@RequestBody
- 作用: 接收前端傳遞的json對(duì)象的字符串
- 接收形式: 一般用于Post請(qǐng)求
- 示例:
@PostMapping("/add")
public void add(@RequestBody LxxBooks lxxBooks){
return lxxBooksService.insertLxxBooks(lxxBooks);
}
- 總結(jié):一般被用來接收body中json數(shù)據(jù),get、post都可以使用。一般用于post。required默認(rèn)為true,代表必須傳參,否則報(bào)錯(cuò)400,允許個(gè)別屬性不傳
到了這里,關(guān)于springboot接收參數(shù)的幾種方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!