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函数里获得返回的值,如:
success: function (data) { alert(data); $("#listPeople",navTab.getCurrentPanel()).attr("value",data.listPeople); $("#listTime",data.listTime); }虽然很简单,但是如何传值确实花了自己很多时间,主要对于规则还是很不清楚,当然自己还是在努力看《ajax安全手册》这本书。
$(".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",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; }