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);
                });
        }
    });

其中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就是就是从后端返回的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值