在struts2中使用jquery FusionCharts来生成图表

一、整合思路

 

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"这个属性,就会产生这个错误,加上就没有。具体如何,还太清楚。

 

四、效果如下

 

  

 

 

你可能感兴趣的:(JavaScript,jquery,jsp,xml,freemarker)