spring mvc 接收返回json串

1.controller  層的handler 方法 return  對象。spring mvc 會負責將返回的對象轉化成json串返回給調用者;

2.GET 請求是不能帶request body 的。POST 請求可以。

例如 :

1.  jsp 頁面 發送ajax 請求,參數爲json ,期望返回也爲json  (注意爲Post 請求不是GET請求 )


<%@include file="/WEB-INF/common/taglibs.jsp"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<script type="text/javascript" src='${ctx}/static/plugins/jquery-1.11.2.min.js'></script>
<script type="text/javascript">
  function savepro(){
    var saveData = {"pid":"111","pname":"ddd"}; //發送給服務器的JSON
    $.ajax({
      type : "POST",
      url : "/quck/products/update",
      data:JSON.stringify(saveData),
      contentType:"application/json",  //發送至服務器的類型
      dataType : "json",     //預期服務器返回類型
      success: function(data){
        alert(data);
      }

    })
  }
</script>
</head>

<body>
<div>
  <input type="button" value="保存" οnclick="savepro()"/>
</div>
</body>

2. controller 方法

@RequestMapping(value="/update",method=RequestMethod.POST)
@ResponseBody   // 這個註解說明返回的是一個對象,不需要當做jsp 處理。   //@RequestBody註解請求參數在請求體裏
public Map<String,Object> update(@RequestBody Product product) throws Exception {
    
    Map<String,Object> map1 = new HashMap<String,Object>();
    map1.put("status", 200);
    map1.put("data", product);
    map1.put("message", "success!");

    return  map1;

}

3 Product 如下:

public class Product {
    private String pname;
    private String pid;

    public String getPid() {
        return pid;
    }

    public void setPid(String pid) {
        this.pid = pid;
    }

    public String getPname() {
        return pname;
    }

    public void setPname(String pname) {
        this.pname = pname;
    }
}

4.  返回:

{
    "message": "success!",
    "status": 200,
    "data": {
        "pname": "ddd",
        "pid": "111"
    }
}

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