2009年7月27日 星期一

在Struts2中使用JFreeChart

1.在Struts2中,並沒有將JFreeChart包含進來,若要在Struts2中使用JFreeChart則需以PlugIn方式引進來。

下載範例(Study.war)
1.1.首先下載JFreeChart PlugIn並將其置放於WEB-INF\lib目錄下
下載JFreeChart PlugIn(struts2-jfreechart-plugin-2.0.11.jar)
1.2.下載JFreeChart Jar(jfreechart-1.0.13.jar,jcommon-1.0.16.jar)檔並將此兩個檔案置於WEB-INF\lib目錄下
1.3.將chart之result type加入於struts.xml內容如下:
<package name="Chart" namespace="/chart" extends="struts-default"><result-types> <result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult"></result-type> </result-types> <action name="viewModerationChart" class="study.ViewModerationChart"> <result name="success" type="chart"> <param name="width">400</param> <param name="height">300</param> </result> </action> <action name="viewModerationChartDispatcher"> <result name="success" type="dispatcher">/ViewModerationChartDispatcher.jsp</result> </action> </package>
=====================================
2.編輯呈現JFreeChart圖形之對應Action(ViewModerationChart.java)
package study;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.chart.axis.ValueAxis;
import com.opensymphony.xwork2.ActionSupport;
import java.util.Random;
public class ViewModerationChart extends ActionSupport {
private JFreeChart chart;
public String execute() throws Exception {
// chart creation logic...
XYSeries dataSeries = new XYSeries(new Integer(1)); //pass a key for this serie
for (int i = 0; i <= 100; i++) {
dataSeries.add(i, new Random().nextInt());
}
XYSeriesCollection xyDataset = new XYSeriesCollection(dataSeries);
ValueAxis xAxis = new NumberAxis("Raw Marks");
ValueAxis yAxis = new NumberAxis("Moderated Marks");
// set my chart variable
chart =
new JFreeChart(
"Moderation Function",
JFreeChart.DEFAULT_TITLE_FONT,
new XYPlot(
xyDataset,
xAxis,
yAxis,
new StandardXYItemRenderer(StandardXYItemRenderer.LINES)),
false);
chart.setBackgroundPaint(java.awt.Color.white);
return super.SUCCESS;
}
public JFreeChart getChart() {
return chart;
}
}
==================================
3.在JSP中呈現JFreeChart圖形(ViewModerationChartDispatcher.jsp)

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>ViewModerationChartDispatcher page</title>
</head>
<body>
<center><h2>Moderation Chart:</h2>
<img src="chart/viewModerationChart.action"><br/>
</center>
<input type="button" value="上一頁" onclick="javascript:history.go(-1)">

<s:debug/>
</body>
</html>
==================================
測試結果:




沒有留言:

張貼留言