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方法的属性名称。
添加回答
举报
