使用Open Flash ChartOFC制作图表Struts2处理Word文档格式.docx
- 文档编号:21835842
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:23
- 大小:272.39KB
使用Open Flash ChartOFC制作图表Struts2处理Word文档格式.docx
《使用Open Flash ChartOFC制作图表Struts2处理Word文档格式.docx》由会员分享,可在线阅读,更多相关《使用Open Flash ChartOFC制作图表Struts2处理Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
11.importjofc2.model.elements.LineChart;
12.importxxx.app.action.BaseAction;
13.publicclassOfcChartActionextendsBaseAction{
14.privateChartofcChart;
15.publicChartgetOfcChart(){
16.returnofcChart;
17.}
18.publicStringshowChart()throwsException{
19.//y轴数据集合-使用数量
20.List<
Number>
dataSet=newArrayList<
();
21.//x轴数据集合-浏览器类型
22.List<
Label>
xLabel=newArrayList<
23.//获取需要显示的数据集
24.ListbrowserList=getServMgr().getVisitStatService().getBrowserStat();
25.for(inti=0;
i<
browserList.size();
i++){
26.Mapmap=(Map)browserList.get(i);
27.//填充x轴
28.dataSet.add((Integer)map.get("
statCount"
));
29.//填充y轴
30.xLabel.add(newLabel((String)map.get("
statVar"
)));
31.}
32.//设置X轴内容
33.XAxislabels=newXAxis();
34.labels.addLabels(xLabel);
35.//设置Y轴显示值域:
Range的三个参数含义为:
坐标最小值,最大值和步进值
36.YAxisrange=newYAxis();
37.range.setRange(0,200,10);
38.//OFC折线图设置
39.LineChartlineChart=newLineChart(LineChart.Style.NORMAL);
40.lineChart.addValues(dataSet);
41.lineChart.setColour("
#6666FF"
);
42.lineChart.setText("
使用者数量"
43.//图表设置
44.Chartchart=newChart("
用户浏览器使用量分布"
45.chart.setXAxis(labels);
46.chart.setYAxis(range);
47.chart.addElements(lineChart);
48.//打印JSON格式的文本
49.System.out.print(chart.toString());
50.HttpServletResponseresponse=ServletActionContext.getResponse();
51.response.setContentType("
application/json-rpc;
charset=utf-8"
52.response.setHeader("
Cache-Control"
"
no-cache"
53.response.setHeader("
Expires"
0"
54.response.setHeader("
Pragma"
No-cache"
55.response.getWriter().write(chart.toString());
56.returnnull;
57.}
58.}
packagexxx.app.action.chart;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.Map;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.struts2.ServletActionContext;
importjofc2.model.Chart;
importjofc2.model.axis.Label;
importjofc2.model.axis.XAxis;
importjofc2.model.axis.YAxis;
importjofc2.model.elements.LineChart;
importxxx.app.action.BaseAction;
publicclassOfcChartActionextendsBaseAction{
privateChartofcChart;
publicChartgetOfcChart(){
returnofcChart;
}
publicStringshowChart()throwsException{
//y轴数据集合-使用数量
List<
//x轴数据集合-浏览器类型
//获取需要显示的数据集
ListbrowserList=getServMgr().getVisitStatService().getBrowserStat();
for(inti=0;
i++){
Mapmap=(Map)browserList.get(i);
//填充x轴
dataSet.add((Integer)map.get("
//填充y轴
xLabel.add(newLabel((String)map.get("
}
//设置X轴内容
XAxislabels=newXAxis();
labels.addLabels(xLabel);
//设置Y轴显示值域:
坐标最小值,最大值和步进值
YAxisrange=newYAxis();
range.setRange(0,200,10);
//OFC折线图设置
LineChartlineChart=newLineChart(LineChart.Style.NORMAL);
lineChart.addValues(dataSet);
lineChart.setColour("
lineChart.setText("
//图表设置
Chartchart=newChart("
chart.setXAxis(labels);
chart.setYAxis(range);
chart.addElements(lineChart);
//打印JSON格式的文本
System.out.print(chart.toString());
HttpServletResponseresponse=ServletActionContext.getResponse();
response.setContentType("
response.setHeader("
response.getWriter().write(chart.toString());
returnnull;
}
Service中获取数据我们使用Spring的JdbcTemplate进行。
1.//获取记录的浏览器信息
2.privatestaticfinalStringSQL_GET_BROWER_STAT="
selectstatVar,statCountfromnd_statswherestatType='
browser'
"
;
3./**
4.*获取记录的浏览器信息
5.*/
6.publicListgetBrowserStat(){
7.returnjt.queryForList(SQL_GET_BROWER_STAT);
8.}
//获取记录的浏览器信息
privatestaticfinalStringSQL_GET_BROWER_STAT="
/**
*获取记录的浏览器信息
*/
publicListgetBrowserStat(){
returnjt.queryForList(SQL_GET_BROWER_STAT);
写好Action,我们简单配置一下,因为我们只是得到JSON文本,所以不必配置跳转,只需配置请求即可。
Xml代码
1.<
actionname="
ofcChart"
class="
xxx.app.action.chart.OfcChartAction"
>
2.<
/action>
<
页面的JS代码也很简单。
如下即可:
Html代码
scripttype="
text/javascript"
src="
${base}/js/swfobject.js"
<
/script>
3.varflashvars={"
data-file"
:
${base}/manage/stat/ofcChart!
showChart.action"
};
4.varparams={menu:
"
false"
scale:
noScale"
wmode:
opaque"
5.swfobject.embedSWF("
${base}/swf/open-flash-chart.swf"
chart"
600px"
400px"
9.0.0"
6."
expressInstall.swf"
flashvars,params);
7.<
8.<
divid="
9.<
/div>
varflashvars={"
varparams={menu:
swfobject.embedSWF("
这里需要多说几句,首先是路径,不能错了,错了就请求不到数据了。
Swfobject.js是页面使用JS方式配置Flash显示的,比较方便,所有使用它了。
设置一个div用于Flash的显示,这个id是embedSWF的第二个参数,不能忘写了。
还有就是请求地址参数的问题,这里我们是方便测试就没有传递参数,而实际开发不可避免传递参数。
参数传递时在请求地址后面按普通形式书写即可,只是&
这个连接符需要转义,写成%26,其他就没有什么了。
我们得到的结果就是这样的,这是很普通的折线图。
但是不比JFreeChart的差哦。
同时在控制台我们得到jofc2为我们生成的JSON文本。
Js代码
1.{"
is_thousand_separator_disabled"
0,"
is_decimal_separator_comma"
title"
{"
tex
2.t"
},"
y_axis"
min"
steps"
10,"
max"
200},"
x_axis"
la
3.bels"
labels"
[{"
text"
Safari"
},{"
MSIE6X"
MSIE7X"
4.MSIE8X"
Firefox"
Chrome"
Opera"
Maxthon"
5.},{"
Other"
}]}},"
num_decimals"
2,"
is_fixed_num_decimals_forced"
element
6.s"
font-size"
"
type"
line"
values"
[6,2,63,168,1,10,
7.1,0,0],"
colour"
}]}
tex
t"
la
bels"
MSIE8X"
element
s"
[6,2,63,168,1,10,
1,0,0],"
}]}
下面我们做柱状图,做个个性点的,用sketch类型。
1.//Sketch型柱状图设置
2.SketchBarChartsketchChart=newSketchBarChart();
3.sketchChart.setColour("
4.sketchChart.addValues(dataSet);
5.sketchChart.setText("
6.//图表设置
7.Chartchart=newChart("
8.chart.setXAxis(labels);
9.chart.setYAxis(range);
10.chart.addElements(sketchChart);
//Sketch型柱状图设置
SketchBarChartsketchChart=newSketchBarChart();
sketchChart.setColour("
sketchChart.addValues(dataSet);
sketchChart.setText("
//图表设置
Chartchart=newChart("
chart.setXAxis(labels);
chart.setYAxis(range);
chart.addElements(sketchChart);
这样我们就得到了下面的显示效果,是不是很卡通,哈哈。
需要注意jofc2将sketch风格的柱状图单独写成了一个类,而使用普通风格的柱状图时不时这么进行的。
1.//柱状图Bar的集合
2.List<
Bar>
barList=newArrayList<
3.for(inti=0;
4.Mapmap=(Map)browserList.get(i);
5.//填充Bar,并给出提示
6.barList.add(newBar((Integer)map.get("
)).setTooltip("
#val#次"
7.//填充y轴
8.xLabel.add(newLabel((String)map.get("
9.}
10.//柱状图设置
11.BarChartbarChart=newBarChart(BarChart.Style.GLASS);
12.barChart.addBars(barList);
13.barChart.setColour("
14.barChart.setText("
15.//图表设置
16.Chartchart=newChart("
17.chart.setXAxis(labels);
18.chart.setYAxis(range);
19.chart.addElements(barChart);
//柱状图Bar的集合
List<
for(inti=0;
Mapmap=(Map)browserList.get(i);
//填充Bar,并给出提示
barList.add(newBar((Integer)map.get("
//填充y轴
xLabel.add(newLabel((String)map.get("
//柱状图设置
BarChartbarChart=newBarChart(BarChart.Style.GLASS);
barChart.addBars(barL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用Open Flash ChartOFC制作图表Struts2处理 使用 Open ChartOFC 制作 图表 Struts2 处理
![提示](https://static.bdocx.com/images/bang_tan.gif)