这篇文章主要结合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
|
result
truefalsetext/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生成柱状图