加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Echarts通过jquery调用Ajax 和javaweb以json传值进行交互

(2016-03-31 22:13:34)
标签:

echarts

ajax

java后台

异步调用

分类: html
背景:百度的echarts 图表展示做得确实挺不错的,然而异步加载的文档写得实在太简略,网上参差不齐的案例十有八九都是不能正常执行的,于是我就花了几天时间自己学习了一下,下面便是自己整理的新的:
 
 
 
实在是无法贴代码啊,网页会自动把网页标签覆盖!!!!
前台:
 
引包
 
http://s13/mw690/005zLPFUzy72QWXMd525c&690和javaweb以json传值进行交互" TITLE="Echarts通过jquery调用Ajax 和javaweb以json传值进行交互" />
body

http://s10/mw690/005zLPFUzy72QWXOVPb29&690和javaweb以json传值进行交互" TITLE="Echarts通过jquery调用Ajax 和javaweb以json传值进行交互" />
 
 
js
var myChart = echarts.init(document.getElementByIdx_x('main'));
  // 显示标题,图例和空的坐标轴
  myChart.setOption({
   title : {
    text : '异步数据加载示例'
   },
   tooltip : {},
   legend : {
    data : [ '销量' ]
   },
   xAxis : {
    data : []
   },
   yAxis : {},
   series : [ {
    name : '销量',
    type : 'bar',
    data : []
   } ]
  });
  myChart.showLoading();// 加载动画
  // 异步加载数据
  $.post('/Ajax_Test/helloBar').done(function(data) {//jQuery触发ajax 从后台异步获取数据
   var str = eval_r('(' + data + ')'); //解析json
   myChart.hideLoading();
   // 填入数据
   myChart.setOption({
    xAxis : {
     data : str.name
    },
    series : [ {
     // 根据名字对应到相应的系列
     name : '人物信息',
     type : 'bar',
     data : str.id
    } ]
   });
  });

http://s8/mw690/005zLPFUzy72QWXRIPle7&690和javaweb以json传值进行交互" TITLE="Echarts通过jquery调用Ajax 和javaweb以json传值进行交互" />

    
 
servlet
 
 
public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  System.out.println("执行doPost");
  barDAO bar = new barDAO();
  JSONObject array = new JSONObject(); 
  try {
   array =  bar.select_all();  //调用方法获取数据
   response.setContentType("text/html; charset=utf-8");// 设置返回时的编码格式
   System.out.println(array.toString());  //控制台打印输出
   // 返回给前段页面
   PrintWriter out = response.getWriter();
   out.println(array);                   //把json返回到界面
   out.flush();
   out.close();
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
DAO层
 
public JSONObject select_all() throws SQLException {// 单位时间用户点击影片排行
  ConnDB conndb = new ConnDB(); // 获取数据库连接
  Connection conn = conndb.getConnection();
  System.out.println("测试数据库连接");
  try {
   String sql = "SELECT * from bar";
   JSONObject array = new JSONObject();
   System.out.println("测试sql执行");
   ps = conn.prepareStatement(sql);
   rs = ps.executeQuery();
   List listname = new ArrayList();
   List listid = new ArrayList();
   int []id =new int[255];
   String []name =new String[255];
   String watchtime ="";
   String avgwatchtime ="";
   int i = 0;
   while (rs.next()) { // 获取数据
    id[i] = rs.getInt("id");
    name[i] = rs.getString("name");
    listname.add(name[i]);
    listid.add(id[i]);
    i++;
   }
   JSONObject jsonData = new JSONObject(); // 直接把id 和用户名 存为 json格式
   jsonData.put("name", listname);
   jsonData.put("id", listid);
   ps.close();
   rs.close();
   if (ps != null)
    ps.close();
   if (rs != null)
    rs.close();
   if (conn != null)
    conn.close();
   return jsonData;
  }
  finally {
   try {
    conn.close();
   } catch (SQLException e) {
    System.out
    .println("Error occured at closing connection in barDAO");
   }
  }
 }
 
 
http://s6/mw690/005zLPFUzy72QWlYDaZ75&690和javaweb以json传值进行交互" TITLE="Echarts通过jquery调用Ajax 和javaweb以json传值进行交互" />
 
原理: 本贴是一个应用echarts 的一个十分基础的demo,首先在服务器发布一个jsp页面作为我们的测试页面,然后由于需要用到ajax和jQuery ,
初次使用就直接使用var myChart = echarts.init(document.getElementByIdx_x_x('main'));在页面上直接加载
然后通过ajax url中的地址向我们后台的servlet发起请求,然后再调用jdbc中的数据库相关sql,接着利用while循环,把返回结果存到我们的数组里面,然后把这些数组放在list当中,接着转换为json格式发送到测试页面,
 
如果是成功执行,就会走到js中 ajax成功接收到返回值的那一步,然后使用dval来对返回来的值进行解析,然后再把值赋值在echarts上面,由于echarts 是外部引用的,所以相关的js,jQuery包都需要引用,地址不要写错
 
页面容易布置,数据库服务、账户信息 密码 都容易报错 

不要忘了引包, 
 
 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有