JFreeChart在Webwork中的應用(2 / 3)

$Webwork/src/resource/web/WEB-INF/web.xml文件。

2.3 Taglib部分的選擇

如果你不打算使用taglib、Velocity、或者XSLT,僅僅隻需要在web.xml中不要包含這些內容就可以了。

2.4 Log的設置

Webwork使用log4j,如果你的app server沒有安裝log4j,你需要增加log4j,複製log4j.jar文件到合適的lib目錄。如果你使用tomcat,那麼安裝目錄是$TOMCAT_HOME\lib,當然也可以安裝到你的web應用的路徑。但需要注意的是如果appserver也適用log4j,你需要小心版本衝突。

2.5 解壓縮jfreechart-0.9.15.zip

jfreechart-0.9.15目錄下的jfreechart-0.9.15.jar和lib/jcommon-0.9.0.jar,lib/gnujaxp.jar都是開發運行需要的文件,把這三個文件放置到/webapp/WEB-INF/lib目錄下。

JFreeChart在Webwork中的應用的具體例子

在進行上麵的步驟後,我們將要進行具體的開發過程。

步驟:首先在xwork.xml -定義result-types

<result-types>

<result-type name="chart" class="pawpaw.test.ChartResult"/>

</result-types>

然後在xwork.xml - 定義action

<action name="viewModerationChart" class="pawpaw.test.ViewModerationChartAction">

<result name="success" type="chart">

<param name="width">400</param>

<param name="height">300</param>

</result>

</action>

其中param裏麵定義的是chart圖表的長寬。然後在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>

部分源代碼如下:

package pawpaw.test;

import com.opensymphony.Webwork.ServletActionContext;

import com.opensymphony.xwork.ActionInvocation;

import com.opensymphony.xwork.Result;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import java.io.OutputStream;import javax.servlet.http.HttpServletResponse;

/*

* <p>Description: 把chart文件流換成是通過HttpServletResponse

* 對象獲取到的輸出流在瀏覽器中輸出</p>

* author: pawpaw

* @version 1.0 12/15/2003

*/

public class ChartResult implements Result

{

JFreeChart chart;

boolean chartSet = false;

private int height;

private int width;

public void setChart(JFreeChart chart)

{

this.chart = chart;

chartSet = true;

}

//設置圖片的長度

public void setHeight(int height)

{

this.height = height;

}

//設置圖片的寬度

public void setWidth(int width)

{

this.width = width;

}

public void execute(ActionInvocation invocation)

throws Exception

{

JFreeChart chart = null;

if (chartSet)