Ajax請求到action,action返回整個頁面的方式
阿新 • • 發佈:2019-02-01
以前用Ajax都是返回物件資料,然後迴圈遍歷物件資料去拼接成某個需要重新整理模組的內容。當資料量大的時候,或者頁面節點比較複雜多的時候,還真麻煩,而且需求改變的時候,要去改變拼接的內容,實在看得眼花繚亂,老實說,Ajax,jQuery那些技術並不精通,等有時間再全部過一遍。
實現方式
$(parent.document).on("click",".upStaff",function(){
$(".modal-dialog").html("");
$.post("getStaffById",{"staff.id" :staffId},function(result){
$(".modal-dialog").html(result);
});
$("#gridSystemModal").modal("show");
});
這是公司專案某個程式碼片段,以下對程式碼進行說明:
$(parent.document)--選擇父窗體的元素
.on(".click"~~~~)--jQuery1.8之後取消了live和bind繫結方式(好像是),反正現在用.on這種方式就對了
$(".modal-dialog" ).html("");--把這個div裡面的內容設定為空
$.post的回撥函式的result,alert警告框是整個頁面,因為action中配置了註解:
@Action(value="getStaffById",results={
@Result(name="json",location="/admin/system/department/updateStaff.jsp")
})
也就是說result接收到的是updateStaff.jsp整個頁面內容。
$(".modal-dialog" ).html(result);--把內容放到這個“.modal-dialog” div盒子中。
$("#gridSystemModal").modal("show");---把這個“.modal-dialog” div 顯示出來,這是個bootstrap前端框架的api,你只需知道這個div本來是隱藏的,現在把它設定為顯示就行了。
總結
這樣就比較方便了,比如我們要修改員工資訊,那麼我們在action中返回updateStaff.jsp中,可以使用jstl + el表示式配合使用去加載出所需要的資訊,因為是Ajax請求,最終updateStaff.jsp還是返回到當前請求的Ajax中,這就是HTML格式返回吧。