首先是把jar包:jcommon-1.0.16.jar和jfreechart-1.0.13.jar复制到Web应用程序目录中的/WEB-INF/lib目录. 并且在web.xml文件中添加如下代码:
<servlet> <servlet-name>DisplayChart</servlet-name> <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class> </servlet> <servlet-mapping> <servlet-name>DisplayChart</servlet-name> <url-pattern>/servlet/DisplayChart</url-pattern> </servlet-mapping>
这样,就可以利用JFreeChart插件生成动态统计图表了.
要先创建JFreeChart对象,然后
String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);
String chartURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
把chartURL放入作用域,就可以在页面上使用了.
也可以生成本地图片使用.
如果是结合struts2使用,需要struts2-jfreechart-plugin-2.1.6.jar,并且在action中必需有一个名为chart的JFreeChart 对象,名字不能错,
/**
* 定义JFreeChart对象 注意在这里JFreeChart对象名只能为chart
*
*/
private JFreeChart chart;
public JFreeChart getChart() {
return chart;
}
public void setChart(JFreeChart chart) {
this.chart = chart;
}
@Override
public String execute() throws Exception {
//实例化chart
this.chart = getPieChart();
return SUCCESS;
}
在struts的配置文件中有两种方法:一是让action所在的包继承jfreechart-default包
<package name="chart" extends="jfreechart-default">
<action name="test" class="com.fsj.action.ChartTestAction">
<result name="success" type="chart">
<param name="width">800 </param>
<param name="height">600 </param>
</result>
</action>
</package>
还有一种方法是增加一个结果类型<result-types>
<package name="def" extends="struts-default" >
<!-- 统计,result-type 必须放在所有action之前-->
<result-types>
<result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult" />
</result-types>
<action name="statisticAct" class="statisticAction">
<result name="input">/WEB-INF/pages/admin/statistic/statistic_input.jsp</result>
<result name="success" type="chart">
<param name="width">900</param>
<param name="height">400</param>
</result>
</action>
</package>
页面上就可以直接访问该action了: <img alt="jfreechart" src="statisticAct"/>