ECharts 与struts的后台交互之柱状图
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的后台交互之柱状图的更多相关文章
- echart使用与后台交互
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Ztree的简单使用和后台交互的写法(二)
针对Ztree的简单使用和后台交互的写法(一)中的树进行改进 1.增加节点的权限 由页面的当前用户,决定树的根节点 然后动态获取树的详细节点: 初始化函数为: function init(){ //初 ...
- Extjs 4.2 Grid增删改及后台交互(Java)
上次发了Easyui Datagrid的增删改查的使用学习记录后一直想整理下基于Extjs4.2的Grid学习使用记录.苦于抽不出时间,一直拖到现在.不得不说,Extjs确实很强大,新版的Neptun ...
- JSON数据格式以及与后台交互数据转换实例
/* 作者:烟大阳仔 时间:20131013 介绍:主要了解一下json的格式,看看数据是怎么存储的 */ <!DOCTYPE html PUBLIC "-//W3C//DTD HTM ...
- ajax简单后台交互
ajax简单后台交互 1,扯淡 单身的生活,大部分时间享受自由,小部分时间忍受寂寞. 生活有时候,其实蛮苦涩,让人难以下咽.那些用岁月积累起来的苦闷,无处宣泄,在自己的脑海里蔓延成一片片荆棘,让你每每 ...
- 通过ajax前端后台交互/登录页和注册页前端后台交互详解/前端后台交互基础应用/几个后台函数的基础应用/php文件函数基础应用/php字符传函数基础应用/php数组函数基础应用
前 言 PHP 学习了好久的PHP,今天做一个可以后台交互的登录页和注册页,没做什么判断,简单的了解一下. 具体的内容分析如下: ① PHP中的数据传输-->>由注册页传输 ...
- 如何用CropBox实现头像裁剪并与java后台交互
如何用CropBox实现头像裁剪并与java后台交互 参考网站:https://developer.mozilla.org/zh-CN/docs/Web/API/Blob 参考: http://blo ...
- js与后台交互详述(入门篇)
很多新手前端在初期学习的时候往往把注意力放在如何编写页面,如何编写效果上,群里有个朋友问我js是如何与后台交互的,我简单的说一下. 首先需要知道两个东西,一个是客户端,一个是服务器,客户端其实就是我们 ...
- 简单web网页与SSM后台交互
简单web网页与SSM后台交互 情况说明 如今,已经搭建好SSM后台开发环境,并且可以经由postman工具测试成功.现在尝试写出web前端网页,通过实现简单的提交.注册.查询功能来加深对前后端数据传 ...
随机推荐
- c++ placement new概念
参考:http://www.cnblogs.com/Clingingboy/archive/2013/04/26/3044910.html 转:http://bbs.chinaunix.net/thr ...
- Inner Classes with TypeScript
原文:https://blog.oio.de/2014/03/21/inner-classes-typescript/ b.ts class Foo { sex:string; say(){ new ...
- JAVA 读取计算机中相关信息
java读取 计算机 cup号 读取版本号 显卡 .. . . ........ .. . . . package com.swt.common.util; import java.io.Buffer ...
- 在不重装系统的情况下撤底删除oracle数据库及oralce的相关软件
先从控制面板删除oracle的相关应用及数据库, 删除系统变量 ORACLE_OEM_CLASSPATH=%JAVA_HOME%\lib\ext\access-bridge-64.jar;%JAVA_ ...
- Coredata — 入门使用
CoreData的底层实现尽管是使用的sqlite数据库.但是CoreData在使用起来但是和sqlite大相径庭.可能你会发现你连一句sql语句都不要写.CoreData存在于应用程序和持久化存储区 ...
- sqoop安装部署(笔记)
sqoop是一个把关系型数据库数据抽向hadoop的工具.同时,也支持将hive.pig等查询的结果导入关系型数据库中存储.由于,笔者部署的hadoop版本是2.2.0,所以sqoop的版本是:sqo ...
- Postgresql监控pgwatch的搭建
一,需要环境: You will need a handful of components to make this work: - Apache (webserver) #apache搭建web页面 ...
- ionic3打包失败的解决办法
使用命令行: $ ionic cordova build android --release 打包android的时候,提示生成失败,原因是没有找到gradle,我的电脑因为安装了Android St ...
- angular中如何监控dom渲染完毕
刚刚看到群上一个人说,他们公司凡是用angular和jquery插件一起用的人,都被解雇了,没看到这句话之前我很惭愧的说我有这样用过,其实angular的生态系统那么完善,完全可以不用去操作任何的do ...
- HDU1212 Big Number 【同余定理】
Big Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...