struts和jfreechart

jfreechart與struts的整合
1. 創建一個struts工程
   首先要搭建一個struts的工程,這裏主要講解jfreechart和struts的整合,struts項目的如何搭建這裏不在
   贅述;

2.  copy struts2 jfreechart的插件
    jfreechart是作爲struts的一個插件形式和struts整合的,首先要把struts中關於jfreechar的插件包(struts2-jfreechart-plugin-2.3.14.jar)
   導到struts的工程的lib目錄下,這個文件在struts的lib包中可以找到,在這個jar包中就兩個文件,一個配置文件struts-plugin.xml和一個java類文件
    org.apache.struts2.dispatcher.ChartResult,這個類文件定義了一個結果集;在struts-plugin.xml配置了一個包和一個結果集,這個包
    繼承自struts-default

    其內容如下:

     <package name="jfreechart-default" extends="struts-default">
    
    	<result-types>
    		<result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult">
    			<param name="height">150</param>
    			<param name="width">200</param>
    		</result-type>
    	</result-types>
     </package>

3. copy jfreechart的jar包
   jfreechart是一個開源的礦建我們可以在他們的官網上下載
   下載後解壓找到其中的lib包,其中有兩個jar包jcommon-1.0.17.jar和jfreechart-1.0.14.jar,將這兩個jar包
   拷貝到我們的工程的lib目錄下,這樣環境我們就搭建好了!

   提醒:
   在解壓後的文件中有這麼一個jar包,jfreechart-1.0.14-demo.jar,這裏包裹全部jfreechart可以做的圖形
   demo,我們可以查看其中jfreechart能做出來的各種各樣的圖形,
   打開windows的dos窗口將目錄切換到jfreechart-1.0.14-demo.jar多在的目錄,運行java命令執行這個文件
   java -jar jfreechart-1.0.14-demo.jar
   這樣就可以打開這個jar文件

4. 接下來我們來做第一個demo
   首先我們創建一個action
   代碼如下:

package app.jfreechat;

import java.awt.Font;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;

import com.opensymphony.xwork2.ActionSupport;

public class BookChart extends ActionSupport {

	//聲明與ChartResult結果類型的屬性"chart",同類型、同名的屬性
	//java.lang.NullPointerException: No JFreeChart object found on the stack with name chart 
	private JFreeChart chart;
	
	public PieDataset getDataset(){
		DefaultPieDataset localDefaultPieDataset = new DefaultPieDataset();
		
		localDefaultPieDataset.setValue("JAVA", 800000);
		localDefaultPieDataset.setValue("PHP", 400000);
		localDefaultPieDataset.setValue(".NET", 300000);
		localDefaultPieDataset.setValue("C++", 200000);
		localDefaultPieDataset.setValue("ANDROID", 1000000);
		
		return localDefaultPieDataset;
	}

	public JFreeChart getChart() {
		
		chart = ChartFactory.createPieChart3D(
				"顯示各學科情況圖", 		//設置圖形標題
				getDataset(), 				//獲取顯示數據
				false, 						//是否顯示圖例
				true, 						//是否顯示工具提示
				false);						//是否生成URL
		
		//處理一下中文亂碼問題
		chart.setTitle(new TextTitle("顯示各學科情況圖",new java.awt.Font("宋體",Font.BOLD,22)));
		
		return chart;
	}
	
}

5. 配置struts.xml文件

  <package name="default" namespace="/" extends="jfreechart-default">
    	<action name="bookAction" class="app.jfreemchar.action.BookCharAction">
			<result name="success" type="chart">
				<param name="height">600</param>
				<param name="width">800</param>
			</result>    	
    	</action>
    </package>

  注意:
    這裏的package必須繼承jfreechart-default包,這樣太能使用其中定義的結果集
    在這裏的result的type類型必須爲chart,這樣才能被jfreechart的結果集來對我們的action的結果進行進一步的處理
    返回給mode層生成動態的網頁相應給客戶機
6. 在瀏覽器中輸入 http://localhost/jfreechart/bookAction 這裏jfreechart是你的項目的名字


發佈了34 篇原創文章 · 獲贊 9 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章