SpringMVC註解------@RequestBody 和 @RequestParam
阿新 • • 發佈:2021-06-16
@RequestBody 和 @RequestParam的區別
@RequestParam
註解 @RequestParam 接收的引數是來自 requestHeader 中,即請求頭。
RequestParam 可以接受簡單型別的屬性,也可以接受物件型別。
配置引數:
引數 | 含義 |
---|---|
required | 表示是否必須,預設為 true,必須。 |
defaultValue | 可設定請求引數的預設值。 |
value | 為接收 url 的引數名(相當於 key 值)。 |
@RequestParam 用來處理 Content-Type 為 application/x-www-form-urlencoded 編碼的內容,Content-Type 預設為該屬性。
@RequestBody
註解 @RequestBody 接收的引數是來自 requestBody 中,即請求體。一般用於處理非 Content-Type: application/x-www-form-urlencoded 編碼格式的資料,比如:application/json、application/xml 等型別的資料。
就 application/json 型別的資料而言,使用註解 @RequestBody 可以將 body 裡面所有的 json 資料傳到後端,後端再進行解析。
GET 請求中,因為沒有 HttpEntity
,所以 @RequestBody 並不適用。
POST 請求中,通過 HttpEntity 傳遞的引數,必須要在請求頭中宣告資料的型別 Content-Type,SpringMVC 通過使用 HandlerAdapter 配置的 HttpMessageConverters 來解析 HttpEntity 中的資料,然後繫結到相應的 bean 上。
@Accessors
Lombok的 Accessors(chain = true) 註解使得setter方法返回當前物件,方便鏈式操作。