12 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
同意樓上說(shuō)法,在實(shí)際開(kāi)發(fā)中Controller層對(duì)于JSON數(shù)據(jù)應(yīng)該是需要經(jīng)過(guò)封裝從而再次返回的。分享一下一個(gè)比較簡(jiǎn)單的封裝類(lèi)
public class Message implements Serializable {
/** * 返回結(jié)果JSON封裝類(lèi) */ 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; //返回結(jié)果 msg.setData(true,list); }

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊
用springboot就不需要@ResponseBody注解 前臺(tái)可以用form提交表按的方式

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
在瀏覽器的network里,在response里能看到后臺(tái)返回的數(shù)據(jù)的情況下,
申明一個(gè)receive
var that = this;//這里涉及到范圍的問(wèn)題
$.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貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
@RequestMapping("/searchChartsData")
@RequestBody //意思就是返回JSon格式的數(shù)據(jù)
前端就可以取到key與value對(duì)應(yīng)的數(shù)據(jù)

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
1、既然前臺(tái)是ajax提交,后臺(tái)就必然加上@ResponseBody注解,要不然他就是是一個(gè)返回視圖。
2、定義一個(gè)success類(lèi),里面最少包含一個(gè)泛型T,最好加上一個(gè)code和一個(gè)msg。
3、定義返回類(lèi)型為success,之后前臺(tái)ajax解析 data.data.對(duì)象存在get方法的屬性名稱(chēng)。
添加回答
舉報(bào)