ECharts主页:  http://echarts.baidu.com/index.html

ECharts-2.1.8下载地址:  http://echarts.baidu.com/build/echarts-2.1.8.zip

ECharts官方实例:  http://echarts.baidu.com/doc/example.html

ECharts官方API文档:  http://echarts.baidu.com/doc/doc.html

1、ECharts是百度的开源项目。在其官网上有非常多实例,我就不多废话刘,这里我们引用的是echarts-all.js 官网上下载。还有jquery的js这样就省去了官网上的这样的步骤

      // 路径配置
require.config({
paths: {
echarts: 'http://echarts.baidu.com/build/dist'
}
}); // 使用
require(
[
'echarts',
'echarts/chart/bar' // 使用柱状图就载入bar模块。按需载入
],
当你引用了echarts-all.js之后上面的步骤就能够去掉了

2、前台代码例如以下

新建一个div

<div id="main2" style="height:400px"></div>

当点击事件触发先吧可选项注入mychart中

var myChart2 = echarts.init(document.getElementById('main2'));

function createBar(){

        option2 = {

    title : {

        text: '练习',

        subtext: '纯属虚构'

    },

    tooltip : {

        trigger: 'axis'

    },

    grid : {  

                    width : '50%'  

                },

    toolbox: {

        show : true,

        feature : {

            mark : {show: true},

            dataView : {show: true, readOnly: false},

            magicType : {show: true, type: ['line', 'bar']},

            restore : {show: true},

            saveAsImage : {show: true}

        }

    },

    calculable : false,

    xAxis : [

        {

            type : 'category',

            data : ['1月','2月','3月','4月','5月','6月','7月']

        }

    ],

    yAxis : [

        {

            type : 'value'

        }

    ],

    series : [

        {

            name:'收入',

            type:'bar',

            data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],

        }

   

    ]};

     myChart2.setOption(option2);

     myChart2.hideLoading();

    getChartData1();//ajax后台交互取得数据

       }

      function getChartData1() {  

            //获得图表的options对象  

            

            var option2 = myChart2.getOption();  

            //通过Ajax获取数据  

            $.ajax({  

                type : "post",  

                async : false, //同步运行  

                url : "<%=path%>/chart_lineData1",  

                dataType : "json", //返回数据形式为json  

                success : function(data) {               

                       

                        option2.xAxis[0].data = data.category;  

                        option2.series[0].data = data.series[0].data;  

 

                        myChart2.hideLoading();  

                        myChart2.setOption(option2);    

                   

                },  

                error : function(errorMsg) {  

                    alert("请求数据失败啦!");  

                    myChart.hideLoading();  

                }  

            });  

        }

             

    </script>

3、后台代码

首先新建一个类

public class Series {

    

    public String name;  

      

    public String type;  

      

    public ArrayList<String> data;//

 

    public Series(String name, String type, ArrayList<String> arrayList) {

        this.name=name;

        this.type=type;

        this.data=arrayList;

    }

}

注意get set方法

接着上action的代码

public String lineData1() {  

            this.collects=this.collectService.findAllCollects("1");//这是我从数据库取数据

            String m[]=new String[collects.size()];

            for(int i=0;i<collects.size();i++){

                m[i]=collects.get(i).getItemAmounts().toString();//数据封装成数组

            }

            List<String> legend = new ArrayList<String>(Arrays.asList(new String[]{"收入"}));//数据分组  

            List<String> category = new ArrayList<String>(Arrays.asList(new String []{"周一","周二","周三","周四","周五","周六","周日"}));//横坐标  

            List<Series> series = new ArrayList<Series>();//纵坐标   

            series.add(new Series("收入", "bar",new ArrayList<String>(Arrays.asList(m))));  

            Map<String, Object> map = new HashMap<String, Object>();

            map.put("legend", legend);

            map.put("category", category);

            map.put("series", series);

            return Utils.ajaxJson(map);

        }

这里我用的封装map集合的方式传递json,Utils.ajaxJson是一个工具类,假设有不懂的看我之前的博客,上面有源代码

到这里前后台的交互就完毕了,

ECharts 与struts的后台交互之柱状图的更多相关文章

  1. echart使用与后台交互

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. Ztree的简单使用和后台交互的写法(二)

    针对Ztree的简单使用和后台交互的写法(一)中的树进行改进 1.增加节点的权限 由页面的当前用户,决定树的根节点 然后动态获取树的详细节点: 初始化函数为: function init(){ //初 ...

  3. Extjs 4.2 Grid增删改及后台交互(Java)

    上次发了Easyui Datagrid的增删改查的使用学习记录后一直想整理下基于Extjs4.2的Grid学习使用记录.苦于抽不出时间,一直拖到现在.不得不说,Extjs确实很强大,新版的Neptun ...

  4. JSON数据格式以及与后台交互数据转换实例

    /* 作者:烟大阳仔 时间:20131013 介绍:主要了解一下json的格式,看看数据是怎么存储的 */ <!DOCTYPE html PUBLIC "-//W3C//DTD HTM ...

  5. ajax简单后台交互

    ajax简单后台交互 1,扯淡 单身的生活,大部分时间享受自由,小部分时间忍受寂寞. 生活有时候,其实蛮苦涩,让人难以下咽.那些用岁月积累起来的苦闷,无处宣泄,在自己的脑海里蔓延成一片片荆棘,让你每每 ...

  6. 通过ajax前端后台交互/登录页和注册页前端后台交互详解/前端后台交互基础应用/几个后台函数的基础应用/php文件函数基础应用/php字符传函数基础应用/php数组函数基础应用

      前  言  PHP     学习了好久的PHP,今天做一个可以后台交互的登录页和注册页,没做什么判断,简单的了解一下. 具体的内容分析如下: ① PHP中的数据传输-->>由注册页传输 ...

  7. 如何用CropBox实现头像裁剪并与java后台交互

    如何用CropBox实现头像裁剪并与java后台交互 参考网站:https://developer.mozilla.org/zh-CN/docs/Web/API/Blob 参考: http://blo ...

  8. js与后台交互详述(入门篇)

    很多新手前端在初期学习的时候往往把注意力放在如何编写页面,如何编写效果上,群里有个朋友问我js是如何与后台交互的,我简单的说一下. 首先需要知道两个东西,一个是客户端,一个是服务器,客户端其实就是我们 ...

  9. 简单web网页与SSM后台交互

    简单web网页与SSM后台交互 情况说明 如今,已经搭建好SSM后台开发环境,并且可以经由postman工具测试成功.现在尝试写出web前端网页,通过实现简单的提交.注册.查询功能来加深对前后端数据传 ...

随机推荐

  1. Boosted Tree

    原文:http://www.52cs.org/?p=429 作者:陈天奇,毕业于上海交通大学ACM班,现就读于华盛顿大学,从事大规模机器学习研究. 注解:truth4sex  编者按:本文是对开源xg ...

  2. idea中dependencies中总是有红色波浪线(缺少dependency)的解决办法

    使用IDEA进行maven开发时,将新项目import进工作空间时,Maven Projects栏中的dependencies中总是有红色波浪线,如下图: 但是这些jar在我本地的maven仓库中实际 ...

  3. 线程池线程数与(CPU密集型任务和I/O密集型任务)的关系

    近期看了一些JVM和并发编程的专栏,结合自身理解,来做一个关于(线程池线程数与(CPU密集型任务和I/O密集型任务)的关系)的总结: 1.任务类型举例: 1.1: CPU密集型: 例如,一般我们系统的 ...

  4. android 实现qq聊天对话界面效果

    效果图: chatting_item_from.xml <?xml version="1.0" encoding="UTF-8"?><Line ...

  5. Linux下串口操作之数据拼接

    串口操作中,特别以非阻塞的方式读取和发送数据,做好进程之间的同步很重要.有时我们会发现这样一个问题,在进行read操作时,一次read不能获得一个完整的数据帧,这就好比你买了一个电脑,送货的先把显示器 ...

  6. 【.NET中AOP的实现方案】静态代理

    Spring AOP 应该是比较出名的了,今天说的是C#里的AOP,C#的AOP实现的方式有很多种,现在就先介绍静态代理的实现方案: 模拟场景:我们在删除用户,或者更新用户的时候进行数据原始备份,这样 ...

  7. iOS类方法实例方法 与 self

    Objective-C里面既有实例方法也类方法.类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenience method).工厂方法的称 ...

  8. rmdir 命令(转)

    原文:http://www.cnblogs.com/peida/archive/2012/10/27/2742076.html rmdir命令.rmdir是常用的命令,该命令的功能是删除空目录,一个目 ...

  9. 翻转子串(string+KMP+程序猿面试金典)

    翻转子串 參与人数:1197时间限制:3秒空间限制:32768K 通过比例:35.03% 最佳记录:0 ms|8552K(来自 ) 题目描写叙述 假定我们都知道很高效的算法来检查一个单词是否为其它字符 ...

  10. Js判断出生年月填写的 是否正确

    var r = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29 ...