$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)