SpringMVC之@requestBody的一些說明

@requestBody註解的使用

  1、@requestBody註解常用來處理content-type不是默認的application/x-www-form-urlcoded編碼的內容,比如說:application/json或者是application/xml等。一般情況下來說常用其來處理application/json類型。

  2、通過@requestBody可以將請求體中的JSON字符串綁定到相應的bean上,當然也可以將其分別綁定到對應的字符串上。

    例如說以下情況:

$.ajax({       
         url:"/login",       
         type:"POST",        
          data:'{"userName":"admin","pwd","admin123"}',      
        content-type:"application/json charset=utf-8",        
          success:function(data)
             {          
                alert("request success ! ");       
            }    
});
 @requestMapping("/login")    
  public void login(@requestBody String userName,@requestBody String pwd){      
  System.out.println(userName+" :"+pwd);    
}


  這種情況是將JSON字符串中的兩個變量的值分別賦予了兩個字符串,但是呢假如我有一個User類,擁有如下字段:
      String userName;
      String pwd;
    那麼上述參數可以改爲以下形式:@requestBody User user 這種形式會將JSON字符串中的值賦予user中對應的屬性上
    需要注意的是,JSON字符串中的key必須對應user中的屬性名,否則是請求不過去的。

 3、在一些特殊情況@requestBody也可以用來處理content-type類型爲application/x-www-form-urlcoded的內容,只不過這種方式不是很常用,在處理這類請求的時候,@requestBody會將處理結果放到一個MultiValueMap<String,String>中,這種情況一般在特殊情況下才會使用,例如jQuery easyUI的datagrid請求數據的時候需要使用到這種方式、小型項目只創建一個POJO類的話也可以使用這種接受方式。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章