highCharts+Struts2生成柱状图
这篇文章主要结合Struts2+json+Highcharts实现动态数据的显示。为了节省时间,就不写数据库了。在action中用一个集合来模拟从数据库取到的数据。模拟数据为三个学生在不同时间成绩的变化情况:
|
张三
|
李四
|
王五
|
|
|
第一周
|
90
|
86
|
95
|
|
第二周
|
95
|
98
|
91
|
|
第三周
|
80
|
64
|
76
|
|
第四周
|
85
|
75
|
90
|
注意本例中用到的数据为JSON数据。因此在action中声明返回json数据的变量并提供get/set方法。如:
|
1
2
|
// 返回学生信息的JSON数据private String result; |
模拟的数据和将数据集合转换成json格式的代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
public String demo() { // 假如查询出来了三个学生信息 dataList = new ArrayList(); StudentScore stu1 = new StudentScore(); StudentScore stu2 = new StudentScore(); StudentScore stu3 = new StudentScore(); stu1.setName("张三"); List allgrade1 = new ArrayList(); allgrade1.add(90); allgrade1.add(95); allgrade1.add(80); allgrade1.add(85); stu1.setData(allgrade1); dataList.add(stu1); stu2.setName("李四"); List allgrade2 = new ArrayList(); allgrade2.add(86); allgrade2.add(98); allgrade2.add(64); allgrade2.add(75); stu2.setData(allgrade2); dataList.add(stu2); stu3.setName("王五"); List allgrade3 = new ArrayList(); allgrade3.add(95); allgrade3.add(91); allgrade3.add(76); allgrade3.add(90); stu3.setData(allgrade3); dataList.add(stu3); try { result = JSONSerializer.toJSON(dataList).toString(); System.out.println("json:" + result); } catch (Exception e) { e.printStackTrace(); } return "query_success"; } |
|
1
|
json:[{"data":[90,95,80,85],"name":"张三"},{"data":[86,98,64,75],"name":"李四"},{"data":[95,91,76,90],"name":"王五"}] |
|
1
2
|
resulttruefalsetext/html |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
$(function() { $.ajax({ type : "POST", dataType : "JSON", url : "HighChartActionUrl_demo.action", success : function(result) { // 解析action中发过来的数据 var userdata = eval('(' + result + ')'); new Highcharts.Chart({ chart : { renderTo : 'gridTable1', // 放置图表的DIV容器对应的id属性 type : 'column' // 图表类型line, spline, area, areaspline, // column, bar, pie , scatter }, title : { text : '学生成绩' // 图表标题 }, subtitle : { text : '10级3年2班' // 副标题 }, xAxis : { categories : [ '第一周', '第二周', '第三周', '第四周', ] // x轴 }, credits : { text : 'demo', // 设置LOGO区文字 }, exporting : { enabled : true }, yAxis : { min : 0, title : { text : '成绩 (分)' } }, legend : { layout : 'vertical', backgroundColor : '#FFFFFF', align : 'left', verticalAlign : 'top', x : 100, y : 70, floating : true, shadow : true }, tooltip : { //当鼠标悬置数据点时的格式化提示 formatter : function() { return '' + this.x + ': ' + this.y + '分'; } }, plotOptions : { column : { dataLabels : { enabled : true }, pointPadding : 0.2, borderWidth : 0 } }, series : userdata }); } });}); |

原创文章,转载请注明: 转载自java开发者
本文链接地址: highCharts+Struts2生成柱状图
highCharts+Struts2生成柱状图的更多相关文章
- HighCharts之2D柱状图
1.HighCharts之2D柱状图源码 column.html: <!DOCTYPE html> <html> <head> <meta charset=& ...
- 如何用asp.net MVC框架、highChart库从sql server数据库获取数据动态生成柱状图
如何用asp.net MVC框架.highChart库从sql server数据库获取数据动态生成柱状图?效果大概是这样的,如图: 请问大侠这个这么实现呢?
- html5生成柱状图(条形图)
<html> <canvas id="a_canvas" width="1000" height="700">< ...
- HighCharts之2D柱状图、折线图的组合多轴图
HighCharts之2D柱状图.折线图的组合多轴图 1.实例源码 SomeAxis.html: <!DOCTYPE html> <html> <head> < ...
- HighCharts之2D柱状图、折线图的组合双轴图
HighCharts之2D柱状图.折线图的组合双轴图 1.实例源码 DoubleAxis.html: <!DOCTYPE html> <html> <head> & ...
- HighCharts之2D柱状图、折线图和饼图的组合图
HighCharts之2D柱状图.折线图和饼图的组合图 1.实例源码 ColumnLinePie.html: <!DOCTYPE html> <html> <head&g ...
- 使用jfreechart生成柱状图、折线图、和饼状图
JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计.下面我就详细介绍如 ...
- struts2生成随机验证码图片
之前想做一个随机验证码的功能,自己也搜索了一下别人写的代码,然后自己重新用struts2实现了一下,现在将我自己实现代码贴出来!大家有什么意见都可以指出来! 首先是生成随机验证码图片的action: ...
- nodejs搭配phantomjs highcharts后台生成图表
简单分享一下,后台使用nodejs结合highcharts.phantomjs生成报表图片的方法.这主要应用在日报邮件. 主要参考以下资料: http://www.highcharts.com/com ...
随机推荐
- MySQL数据库如何与EXCEL的XLS格式相互转换
1 将SQL导出为EXCEL方法,有如下数据库(my_impa),里面有两张表 2 如果是EXCEL格式,一定要勾选"将字段名称放在首行",否则待会儿导入的时候就需要你手工新建字段 ...
- C/C++内存管理
1. 静态内存 静态内存是指在程序开始运行时由编译器分配的内存,它的分配是在程序开始编译时完成的,不占用CPU资源.程序中的各种变量,在编译时系统已经为其分配了所需的内存空间,当该变量在作用域内使用完 ...
- Android Touch事件传递机制引发的血案
尊重原创:http://blog.csdn.net/yuanzeyao/article/details/38942135 关于Android Touch事件传递机制我之前也写过两篇文章,自觉得对Tou ...
- mongodb的基本语法(二)
一.聚集集合查询 1.查询所有记录 db.userInfo.find(); 相当于:select* from userInfo; 默认每页显示20条记录,当显示不下的情况下,可以用it迭代命令查询下一 ...
- php中对象是引用类型吗?
这貌似是一个极其简单的问题,还用得着专门写一篇博文?各位看官,最初我也这么认为,但这的确蒙蔽了你那水灵灵的小眼睛,不妨看看什么是引用? $a = 10; $b = &$a; $b = 20; ...
- 总结文件操作函数(一)-C语言
在进程一開始执行,就自己主动打开了三个相应设备的文件.它们是标准输入.输出.错误流.分别用全局文件指针stdin.stdout.stderr表示,相应的文件描写叙述符为0.1.2:stdin具有可读属 ...
- import { Subject } from 'rxjs/Subject';
shared-service.ts import { Observable } from 'rxjs/Observable'; import { Injectable } from '@angular ...
- 《MVC +EasyUI 》——表单的提交
之前用AJax给Controller传递參数,然后再调用服务端的方法对数据库进行更改,今天碰到一个新的方法,就是表单的提交.这样能够省去AJax穿參.当表单提交后.我们能够获取表单上控件中的值 ...
- unity的自带特性
2016/9/24补充: unity官方有一篇文章对菜单扩展讲的不错 https://unity3d.com/cn/learn/tutorials/topics/interface-essential ...
- Atitti. 语法树AST、后缀表达式、DAG、三地址代码
Atitti. 语法树AST.后缀表达式.DAG.三地址代码 抽象语法树的观点认为任何复杂的语句嵌套情况都可以借助于树的形式加以描述.确实,不得不承认应用抽象语法树可以使语句翻译变得相对容易,它很好地 ...