1. 程式人生 > 其它 >SpringMVC註解------@RequestBody 和 @RequestParam

SpringMVC註解------@RequestBody 和 @RequestParam

@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方法返回當前物件,方便鏈式操作。