从JSP方法获取json数据到JS

时间:2012-07-27 10:55:23

标签: jquery ajax json jsp

我有一个JSP文件,其中我声明了一个返回json的方法。现在我想使用ajax在js文件中获取此json。但是当我使用ajax调用时,它返回整个jsp页面而不是json数据 这是我的jsp

<%-- 
    Document   : index
    Created on : Jul 26, 2012, 3:49:33 PM
    Author     : tagit
--%>
<%@page import="net.sf.json.JSONObject"%>
<%@page import="my.mychartData"%>
<%@page import="my.mychartInfo"%>
<%@page import="my.mychart"%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
         <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
         <script type="text/javascript" language="javascript">
         </script>
    </head>
    <body>
 <%!
 Object showchart()
 {
 mychartInfo c1 =new mychartInfo();
 mychartInfo c2=new mychartInfo();
 mychartInfo c3=new mychartInfo();
 mychartInfo c4=new mychartInfo();
 mychartInfo c5=new mychartInfo();
 mychartInfo c6=new mychartInfo();
mychartData c7=new mychartData();

c1.setColor("pink");
c1.setDataDes("Gas data");
c1.setDataVal("20");
c1.setName("Gas");
c2.setColor("green");
c2.setDataDes("cash data");
c2.setDataVal("30");
c2.setName("Cash");
c3.setColor("blue");
c3.setDataDes("Resturent data");
c3.setDataVal("38");
c3.setName("Resturent");
c4.setColor("blue");
c4.setDataDes("boat data");
c4.setDataVal("60");
c4.setName("Boat");
c5.setColor("black");
c5.setDataDes("Movies data");
c5.setDataVal("40");
c5.setName("Movies");
c6.setColor("yello");
c6.setDataDes("Shopping data");
c6.setDataVal("50");
c6.setName("Shopping");
c7.setDonut("30");
c7.setFont("afdafafafafaf");
c7.setGradientPos("leftsdgd");
mychart chart1=new mychart();

Object obj =chart1.addChart(c1, c2, c3, c4, c5, c6, c7);
return obj ;
 }
%>

     <%
     out.println( showchart());
     %>
     %>
    </body>
</html>

这是我的ajax功能

    $.ajax({
        type: "get"
       ,dataType: "json"
       , url: "http://localhost:8080/Webcharts/index.jsp;"
       ,success: function(json){
       alert("here"+json);

}
});

1 个答案:

答案 0 :(得分:0)

不要在JSP上编写任何HTML代码。设置contentType。

您需要将对象序列化为JSON。它不会自动完成。

恕我直言,用servlet做得更好。