網上翻閱了很多部落格,對這三種參數做了總結,如有不足指出,請在評論指出。
@PathVariable綁定URI模闆變量值
@PathVariable是用來獲得請求url中的動态參數的
@PathVariable用于将請求URL中的模闆變量映射到功能處理方法的參數上。//配置url和方法的一個關系*@RequestMapping(“item/{itemId}”)*

@RequestParam
注解@RequestParam接收的參數是來自HTTP請求體或請求url的QueryString中。
RequestParam可以接受簡單類型的屬性,也可以接受對象類型。
@RequestParam有三個配置參數:
-
表示是否必須,預設為required
,必須。true
-
可設定請求參數的預設值。defaultValue
-
為接收url的參數名(相當于key值)。value
@RequestParam用來處理
Content-Type
為
application/x-www-form-urlencoded
編碼的内容,
Content-Type
預設為該屬性。@RequestParam也可用于其它類型的請求,例如:POST、DELETE等請求。
是以在postman中,要選擇body的類型為
x-www-form-urlencoded
,這樣在headers中就自動變為了
Content-Type
:
application/x-www-form-urlencoded
編碼格式。如下圖所示:
但是這樣不支援批量插入資料啊,如果改用
json
字元串來傳值的話,類型設定為
application/json
,點選發送的話,會報錯,背景接收不到值,為
null
。
這時候,注解@RequestBody就派上用場了。繼續往下看 ↓
@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通過使用
(HttpServletRequest request) 這個在攔截器中碰到過,不能使用json 除了表單在vue可以使用 let