12 回答
TA贡献1796条经验 获得超7个赞
同意楼上说法,在实际开发中Controller层对于JSON数据应该是需要经过封装从而再次返回的。分享一下一个比较简单的封装类
public class Message implements Serializable {
/** * 返回结果JSON封装类 */ private static final long serialVersionUID = 1L; private boolean success = true; private String msg = "成功"; private Object obj; public Object getObj() { return obj; } public void setObj(Object obj) { this.obj = obj; } public Message(boolean success, String msg) { super(); this.success = success; this.msg = msg; } public boolean isSuccess() { return success; } public void setSuccess(boolean success) { this.success = success; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public Message() { super(); } public Message(String msg) { super(); this.msg = msg; }
}
Controller层的RequestMapping映射器方法返回方法可以为Message 例:
public Message getAll(){ Message msg = null; //返回结果 msg.setData(true,list); }
TA贡献1966条经验 获得超4个赞
在浏览器的network里,在response里能看到后台返回的数据的情况下,
申明一个receive
var that = this;//这里涉及到范围的问题
$.ajax({
url: URL,
type: 'POST',
dataType:"json",
success: function (data) {
if(data.code=="200"){
that.receive = data.result;
}else{
alert(data.reason);
}
},
error:function(evt){
console.log(evt);
}
});
TA贡献1860条经验 获得超9个赞
@RequestMapping("/searchChartsData")
@RequestBody //意思就是返回JSon格式的数据
前端就可以取到key与value对应的数据
TA贡献1818条经验 获得超3个赞
1、既然前台是ajax提交,后台就必然加上@ResponseBody注解,要不然他就是是一个返回视图。
2、定义一个success类,里面最少包含一个泛型T,最好加上一个code和一个msg。
3、定义返回类型为success,之后前台ajax解析 data.data.对象存在get方法的属性名称。
添加回答
举报