註解RequestBody詳解

2021-10-01 02:53:36 字數 1356 閱讀 3262

之前很多註解老是不太清楚作用並且容易搞混,這次一次性搞明白!

這是最近在使用postman做介面測試的時候發現自己的這個知識盲點。我們通常使用postman做測試的時候最常用的就是post與get請求,兩者的區別主要在於乙個將引數放在url中進行傳遞乙個將引數放在request body中進行傳遞這裡我們不做過多陳述。直接上乾貨!

requestbody註解的主要作用就是用於接收前端的引數,當我們使用post請求的時候,我們會將引數放在request body中,此時我們就需要在controller的方法的引數前面加上@requestbody用來接受到前端傳過來的request body中的值,舉個栗子:

@controller

public class test

}

寫法很簡單就是這樣,直接在引數前面加乙個註解就可以了,接下來我們詳細介紹一下使用過程中需要注意的問題:

首先當我們使用@requestbody接收資料的時候,前端的請求方法要使用post方式來進行提交;

第二、乙個請求只能有乙個requestbody,也就是說,當乙個方法中有兩個引數的時候,最多只能有乙個引數加@requestbody註解用來接受request body中的引數;

說到requestbody就不得不說到requestparam,首先介紹一下requestparam的使用場景:

@requestparam接收的引數主要是來自request header中,即請求頭中。通常用於get請求中,我們都知道get請求的引數都是寫在url中的,例如:http://localhost:8080/my/api/testmethod?name=雷神&age=3   該url我們可以看到有那麼和age兩種屬性,那麼當我們將此請求傳送到後台服務以後,controller寫法如下:

@controller

public class test

}

testmethod方法中的引數一共有兩個,乙個是name,乙個是age。與requestbody不同的是,如果你在引數前面加了@requestparam註解那麼該引數則請求中則必須有對應的引數名(不管其是否有值),否則的話請求會報錯(應該是報400)!如果不加@requestparam註解的話,當你的請求中有對應的引數名的時候會自動匹配到值,如果沒有對應的引數的話請求特可以也可以正常傳送。

現在解釋一下@requestparam的括號中的三個引數的意思,value值得就是請求的url中必須要有的引數名,相當於key值;required表示的是是否為必須,也就是說引數在url中是否為必須,預設的是true;defaultvalue指的則是引數的預設值;

還有一點需要解釋一下,如果你直接在引數前面加上@requestparam,那麼該引數的名字就是url中必須要有的引數名

RequestBody註解分析

get可以擁有請求體,rfc 文件中從來就沒有說過 get 沒有請求體.rfc 只是說get 意味著通過 uri 來識別資源。所以get請求體中的資料一般都是不做處理的,有些 http 的 lib 裡不讓甚至直接不提供 get 方法追加請求體的操作。post請求擁有請求體,並且請求資料一般都是放在請...

requestBody註解的使用

2 通過 requestbody可以將請求體中的json字串繫結到相應的bean上,當然,也可以將其分別繫結到對應的字串上。例如說以下情況 ajax success function data public void login requestbody string username,request...

RequestBody註解的使用

2.通過 requestbody可以將請求體中的json字串繫結到相應的bean上,當然也可以將其分別繫結到對應的字串上。如下 ajax success function data public void login requestbody string username,requestbody s...