SpringMVC 前端接收ResponseBody資料例子
阿新 • • 發佈:2018-11-19
在SpringMVC中,如要後臺返回物件或json資料而不進行頁面的跳轉則需要在後臺處理方法上新增@ResponseBody註釋,若處理類中的所有方法都是返回資料而不進行頁面的跳轉處理則為處理類新增@RestController註解即可省去為每個處理方法新增@ResponseBody的麻煩,而沒有@RequestMapping註解的普通方法不會受到影響。
後臺處理類(由於該文主要是寫前端與SpringMVC後臺的互動,所以資料服務層則不多講,框架用的是SSM,之前也發過這套框架的集合例子):
第二個方法是為了驗證沒有RequestMapping該方法不會以@ResponseBody註解方法處理
前端responseBodyTest.html(由於個人隱私原因賬號和一些資料將無法顯示給大家):
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="src/js/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function(){
$("#btn").click(function(){
$.ajax({
url:"company/ [email protected].com",
type: "GET",
success:function(data,status){
var content = "";
$.each(data,function(selector, context) {
content = content + selector + ":" + context + "<br>";
})
$("#content").prepend(content);
},
error:function(XMLHttpRequest, textStatus,
errorThrown){
alert("請求失敗1");
}
})
})
$.ajax({
url:"company/",
type: "GET",
success:function(data,status){
alert("success");
},
error:function(XMLHttpRequest, textStatus,
errorThrown){
alert("請求失敗2");
}
})
})
</script>
</head>
<body>
<button id="btn">click</button><br>
<div id="content"></div>
</body>
</html>
當進入或重新整理responseBodyTest頁面時,CompanyRestController將會接收到前端company/的ajax請求,但此時jetty並沒有返回任何資料到控制檯中,說明無@RequestMapping註解的方法將不會以@ResponseBody作為註解方法處理,前端彈出success對話方塊表示回撥成功。(效果圖如下)
當點選click按鈕將傳送username資料到後臺處理,後臺處理方法將在伺服器(個人用的是jetty,tomcat也一樣)控制檯顯示getByUsername並從資料庫查詢username為前端傳送過來的賬號並返回對應的封裝物件,再在id="content"的div區域進行遍歷顯示。(效果圖如下)
該例子是個人打算應用到畢設中的一個知識點的嘗試例子,同時也記錄分享一下