jQuery的Ajax接收java返回数据方法
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,就这么写:
@ResponseBody
public 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就是就是从后端返回的数据。
相关推荐
春雨的雕刻时光 2020-06-10
wcqwcq 2020-06-26
delmarks 2020-06-14
ppsurcao 2020-06-14
tthappyer 2020-06-07
kentrl 2020-11-10
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo
ajaxyan 2020-11-09
zndy0 2020-11-03
学留痕 2020-09-20
learningever 2020-09-19
chongxiaocheng 2020-08-16
ajaxhe 2020-08-16
lyqdanang 2020-08-16