spring mvc 接收返回json串

来源:互联网 发布:数据库安全防护总结 编辑:程序博客网 时间:2024/06/06 16:27

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="保存" onclick="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"
    }
}

0 1