Struts2整合JFreeChart

材料:

(1)    JFreeChartjar包:jcommon-1.0.17.jarjfreechart.jarstruts2-jfreechart-plugin-2.1.6.jar

(2)    Struts2jar 包,略

工具:Eclipse IDEServertomcat好了

开始整合:

1.       首先新建Dynamic Web Project,并且整合上Struts2,具体jar包,配置等,不赘述。然后发布到tomcat,测试一下。顺便把JFreeChart3jar包也放入WEB-INF/lib下,会自动导入到project

2.       创建一个Action类,ChartAction

package com.leon.action;

import javax.annotation.Resource;

import org.jfree.chart.JFreeChart;
import org.springframework.stereotype.Controller;

import com.leon.service.ChartService;
import com.opensymphony.xwork2.ActionSupport;

public class ChartAction extends ActionSupport {
	private JFreeChart chart;
	
	public String jfreeChart(){
		this.chart = createChart();
		return SUCCESS;
	}

	//setter and getter
	public JFreeChart getChart() {
		return chart;
	}
	public void setChart(JFreeChart chart) {
		this.chart = chart;
	}
	
}

说明:Action类一定要定义一个成员变量,命名为chart,并且生成setter/getter,获得chartAction方法中为chart变量创建引用的JFreeChart实例,来自方法createChart(),如下:

public JFreeChart createChart() {
	double[][] data = new double[][] {{1320,720,830,400,1000,1500},{500,300,400,100,450,550}};  
	String[] rowKeys = {"佣金","奖金"}; 
		
	String[] columnKeys = {"201201", "201202", "201203", "201204", "201205", "201206"};  
		
	CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);   
	JFreeChart chart = ChartFactory.createBarChart3D("2012上半年佣金",   
		               "年月","金额",dataset,  
		               PlotOrientation.VERTICAL,  
		               true,  
		               false,  
		               false);  
		
	//设置标题字体,可以处理乱码问题
	chart.getTitle().setFont(new Font("宋体", Font.BOLD,14));
		
	CategoryPlot plot = chart.getCategoryPlot();    
		
	//X轴
	CategoryAxis domainAxis = plot.getDomainAxis();
	//设置设置X轴上的文字  
	domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
	//设置X轴的标题文字
	domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12)); 
		
	//Y轴
	ValueAxis numberaxis = plot.getRangeAxis();
	//设置设置Y轴上的文字  
	numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));    
	//设置Y轴的标题文字  
	numberaxis.setLabelFont(new Font("宋体", Font.BOLD, 14));
		
	//这句代码解决了底部汉字乱码的问题 
	chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));  
	
	return chart;
}

实际项目运用中,这个产生chart的方法一般是不写在Action类中的,一般写在Service类中,让Action类调用。这边为了简单,就写在Action类中好了。关于JFreeChart的各种设置,格式等,也略去,网上很多,柱图也可以参考我的另一篇文章“Web工程采用JFreeChart作柱状图简单实例”。

3.       struts2配置文件

<package name="jfreechart" extends="struts-default,jfreechart-default">
	<action name="jfreechart" method="jfreeChart" class="com.leon.action.ChartAction" >
		<result name="success" type="chart">
			<param name="height">400</param>
			<param name="width">700</param>
		</result>
	</action>
</package>

说明:注意几点,package要继承jfreechart-default,这里只是一种配置方式;然后resulttype是“chart”;然后就是高度,宽度了。

4.       jsp页面

JSP页面很简单,就是标签:

<img src="jfreechart" width="700" height="400" />


需要注意的是src的值实际是一个action来的,因为我的struts2过滤器通配符为/*,所以这么写,有的可能是*.do什么的,就要写成jfreechart.do。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值