1.前端Ajax請求如下:
$.ajax({ type : "post", //async:false, url : PATH + "/product/selectPicture.action", dataType : "json", success : function(data) { $.each(data,function(k,v){ alert(k +":"+ v); }); } });
2 其中PATH在jsp頁面中定義:
<%String path=request.getContextPath();%><script> var PATH = ‘<%=path%>';</script>
2.1 后端java代碼輸出json格式數據:
List<Map<String,Object>> list = bo.selectData();response.setContentType("application/json;charset=GBK");PrintWriter out=response.getWriter(); out.write(JSONArray.fromObject(list).toString());out.flush();out.close();
其中list為從數據庫中查出的數據,JSONArray.fromObject(list)需要導入json-lib-2.4-jdk15.jar包,而且這個包需要在導入幾個依賴包才能用這個百度一下吧。注意返回的格式為json,和編碼格式。
2.2 也可以使用alibaba的fastjson1.2.8.jar包,那么后端就該這么寫:
List<Map<String,Object>> list = productService.selectCategory();String jsonString = JSON.toJSONString(list, true); response.setContentType("application/json;charset=utf-8"); PrintWriter out = response.getWriter();out.write(jsonString);out.flush();out.close();
2.3 如果后端用的是基于注解的springMVC,就這么寫:
@ResponseBodypublic JSONArray selectData(HttpServletRequest request){ List<Map<String,Object>> list= bo.selectData(); return JSONArray.fromObject(list); }
就是在方法前加上@ResponseBody注解,并return json格式的數據即可。
3 如果Ajax要求返回的數據類型為 dataType : “html”,那么后端java就是:
String key = bo.selectData();response.setContentType("text/html;charset=utf-8");Writer out = response.getWriter();out.write(key);out.flush();out.close();
在Ajax的success : function(data) { }方法中,data就是就是從后端返回的數據。
以上這篇jQuery的Ajax接收java返回數據方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。
新聞熱點
疑難解答