一、整合思路
1、利用struts2+freemarker生成xml
2、FusionCharts读取xml文件,并生成相应的图表。
二、核心代码:
test.jsp
<script type="text/javascript" src="FusionCharts.js"></script> <div id="chartdiv1" align="center">FusionCharts. </div> <script type="text/javascript"> var chart = new FusionCharts("MSColumn3D.swf", "ChartId1", "700", "500", "0", "0"); chart.setDataURL("statisticData.xml"); chart.render("chartdiv1"); </script>
statisticData.xml
<?xml version="1.0" encoding="gb2312" ?> - <chart id="ChartId1" caption="网站相关统计结果" shownames="1" showvalues="1" decimals="0" formatNumberScale="0" baseFont="Tahama" baseFontSize="12"> - <categories> <category label="栏目" /> <category label="产品" /> <category label="产品视频" /> <category label="产品图片" /> <category label="文章" /> <category label="留言" /> <category label="订单" /> <category label="未处理订单" /> <category label="友情链接" /> <category label="上传文件" /> <category label="用户" /> </categories> - <dataset seriesName="计数"> <set value="16" /> <set value="3" /> <set value="5" /> <set value="3" /> <set value="15" /> <set value="7" /> <set value="3" /> <set value="2" /> <set value="6" /> <set value="3" /> <set value="4" /> </dataset> </chart>
struts2.xml
<action name="adminWelcome" class="org.darkness.freemarker.action.AdminWelcome"> <result name="success" type="redirect">/admin/fusionchart/test.jsp</result> </action>
三、调试中遇到的问题
1、invalid xml data
这个是编码总是,一定要统一编码,比如都用gb2312。特别注意xml编码方式和生成xml文件方法中的编码方式要统一。
2、js错误提示:‘FusionCharts’未定义!!!
这个错误好奇怪啊,
我的后台是iframe打的框架,在struts2.xml中采如果不加type="redirect"这个属性,就会产生这个错误,加上就没有。具体如何,还太清楚。
四、效果如下