java+echarts实现动态图表详解

 java+echarts实现动态图表,jsp前台页面通过ajax异步请求,controller层处理完数据返回前台实现动态图表。

一个简单实例:

1. 前台echarts图表依赖js文件:

echarts.js  下载地址 :http://echarts.baidu.com/download.html

jquery-1.11.2.min.js  jquery依赖js文件

2.前台页面:

引用echarts.js、jquery-1.11.2.min.js

编写图表:

<div id="main" style="width: 600px;height:400px;"></div>

                <script type="text/javascript">

//ajax异步请求获取后台动态数据

$.ajax({
                    url:"login.do",//要请求的服务器url
                    async:true,   //是否为异步请求
                    cache:false,  //是否缓存结果
                    type:"POST", //请求方式为POST
                    dataType:"json",   //服务器返回的数据是什么类型
                    success:function(result){  //这个方法会在服务器执行成功是被调用 ,参数result就是服务器返回的值(现在是json类型)
                        if(result){
                   myChart.setOption({        //给echarts图标赋值
                   xAxis: {
                      data: result.xAxis
                  },
                  series: [{
                        data: result.series
                    }]
                });
                        }else{
                            alert(2)
                        }
                    }
                })

       
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));

        // 指定图表的配置项和数据
        var option = {                 
            title: {
                text: 'java+ECharts实现动态图表'
            },
            tooltip: {},
            legend: {
                data:['销量']
            },
            xAxis: {
                data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
            },
            yAxis: {},
            series: [{
                name: '销量',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }]
        };

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);

        </script>

更多类型的图表参考echarts官网,地址:http://echarts.baidu.com/examples/

2.java后台controller层:

package controller;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import dao.JsonUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import vo.User;


@Controller
public class Usercontroller {

@ResponseBody
@RequestMapping("/login.do")
public void login(HttpServletResponse response){
    JSONObject jo=new JSONObject();
    JSONArray arr=new JSONArray();
    arr.add(1);
    arr.add(2);
    arr.add(3);
    arr.add(4);
    arr.add(5);
    arr.add(6);
    JSONArray arr1=new JSONArray();
    arr1.add(10);
    arr1.add(20);
    arr1.add(30);
    arr1.add(40);
    arr1.add(50);
    arr1.add(60);
    jo.put("xAxis", arr);
    jo.put("series", arr1);

    System.out.println( "========>"+jo.toString());  

//后台输出的json格式:

//========>{"xAxis":[1,2,3,4,5,6],"series":[10,20,30,40,50,60]}
//========>{"xAxis":[1,2,3,4,5,6],"series":[10,20,30,40,50,60]}

    JsonUtil.write(response, jo);  //把值返回给前台  
}
}

实际使用查询出数据组装成“{"xAxis":[1,2,3,4,5,6],"series":[10,20,30,40,50,60]}“这种格式json返回给前台即可。

3.测试



猜你喜欢

转载自blog.csdn.net/weixin_42071232/article/details/80220928