ajax之前臺和後臺資料傳輸
阿新 • • 發佈:2019-02-04
Spring中ajax資料傳輸
由於專案需要用ajax提交資料,而不是form提交資料。因此我需要學習ajax,這也是我在開發小組做的最後一個東西,儘管由於暑假要去東軟實訓,這個ajax提交也沒有做完,但對於資料的在前臺和後臺的傳遞是解決了。 如何把資料通過ajax從前臺傳到後臺,在網上查詢的方法都是通過“data:”把資料傳到後臺,但是後臺“String endTime=request.getParameter("eTime");”時間的值是空,並不能得到值,最後只有通過“url:”傳值到後臺,如: url : "${base}/management/loginMonitor/loginCount/getJson.htm?eTime="+eTime+"& sTime="+sTime。開始時間和結束時間就能通過request得到。 那麼如何把資料通過ajax從後臺傳遞到前臺,首先資料放在map裡,如:map.put("listPeople", listPeople);map.put("listTime", listTime);在controller裡的方法要加上“@ResponseBody”,前臺就在ajax裡的success函式裡獲得返回的值,如:雖然很簡單,但是如何傳值確實花了自己很多時間,主要對於規則還是很不清楚,當然自己還是在努力看《ajax安全手冊》這本書。 前臺程式碼:success: function (data) { alert(data); $("#listPeople",navTab.getCurrentPanel()).attr("value",data.listPeople); $("#listTime",navTab.getCurrentPanel()).attr("value",data.listTime); }
後臺程式碼:$(".sub").click(function(){ var eTime=$("#endTime").attr("value"); var sTime=$("#startTime").attr("value"); $.ajax({ type: "post", contentType:"application/json", async : false, url : "${base}/management/loginMonitor/loginCount/getJson.htm?eTime="+eTime+"& sTime="+sTime, success: function (data) { alert(data); $("#listPeople",navTab.getCurrentPanel()).attr("value",data.listPeople); $("#listTime",navTab.getCurrentPanel()).attr("value",data.listTime); } }); });
@ResponseBody @RequestMapping("/getJson") public Map<String, Object> getJson(HttpServletRequest request) throws Exception { //顯示相應的介面 Map<String, Object> map=loginCountService.getRefreshMap(request); /*Set<Map.Entry<String, Object>> allSet=map.entrySet(); Iterator<Map.Entry<String, Object>> iter=allSet.iterator(); while(iter.hasNext()){ Map.Entry<String, Object> me=iter.next(); System.out.println("test"+me.getKey()+ " "+me.getValue()); }*/ return map; }