1. 程式人生 > >springMVC中@RequestParam和@RequestBody的作用

springMVC中@RequestParam和@RequestBody的作用

 

@RequestParam和@RequestBody是什麼區別,估計很多人還是不太清楚,

因為一般用@ RequestParam就足夠傳入引數了,要說他們區別,就需要知道contentType是什麼?

Content-Type: 預設為 application/x-www-form-urlencoded編碼的內容,提交方式可以是GET、POST

 

 


 

[email protected] 

GET、POST:一般處理得是Content-Type:

application/x-www-form-urlencoded

multipart/form-data

其他格式包括application/json, application/xml等。這些格式的資料,必須使用@RequestBody來處理


PUT:

根據request header Content-Type的值來判斷:
application/x-www-form-urlencoded可以;
multipart/form-data, 不能處理;
其他格式可以;

 


 

@RequestBody這個一般處理的是在ajax請求中宣告contentType: "application/json; charset=utf-8"時候。也就是json資料或者xml

@RequestParam這個一般就是在ajax裡面沒有宣告contentType的時候,為預設的。。。urlencode格式時,用這個

 

@ReqeustBody:

    常用來處理content-type不是預設的application/x-www-form-urlcoded編碼的內容,
     好比:application/json或者是application/xml等,常常用來其來處理application/json型別

注意:@requestBody接收的是前端傳過來的json字串,而不是物件

@ResponseBody:

   用於將Controller的方法返回的物件,通過HttpMessageConverter介面轉換為指定格式的資料如:json,xml等,通過Response響應給客戶端.

注意:不一定只能傳遞字串,若有對應的java類,springMVC會自動幫忙轉換成符合要求的資料格式(json/xml)