Springmvc JSON互動
先上前端javascript,ajax代碼
function testAjaxS(){ $.ajax({ type:'post', url:'material/testAjax', data:'MediaId=手', success:function(data){//返回json結果 alert(success); }
對應的Spring mvc 接收代碼
@RequestMapping(/testAjax)public @ResponseBody WXMedia testAjax(WXMedia wxMedia){ //值得注意的地方,參數中沒有@RequestBody, 並且該POJP類必須有一個無參構造器 System.out.println(wxMedia); return wxMedia; }
第二種:
function testAjaxS(){$.ajax({type:'post',url:'material/testAjax2',//json字串必須設定contentType:'application/json;charset=utf-8',//資料格式是json字串data:{'MediaId'='手'},success:function(data){//返回json結果alert(success);}});
對應的spring mvc 接收代碼
@RequestMapping(/testAjax2)public @ResponseBody WXMedia testAjax2(@RequestBody WXMedia wxMedia){ //這裡有RequestBodySystem.out.println(wxMedia);return wxMedia; //返回的也會是一個json字串,雖然方法傳回值是POJO類}
接收JSON數組:
前端代碼:
function testAjaxS(){$.ajax({type:'post',url:'material/testAjax3',contentType:'application/json;charset=utf-8',data:JSON.stringify([{MediaId:1},{MediaId:2}]), //2個對象success:function(data){//返回json結果alert(success);}});
後台接收:
@RequestMapping(/testAjax3)public @ResponseBody WXMedia[] testAjax3(@RequestBody WXMedia[] wxMedia){ System.out.println(wxMedia.length);return wxMedia;}
總結:
@RequestBody: 接受json字串,後面跟相應的POJO類型即可,如果是數組則打上[],不加該註解則接收普通的參數請求
@ResponseBody:以JSON格式返回POJO對象