`
chinrui
  • 浏览: 98055 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

struts整合jfreechart

 
阅读更多

Struts2与JFreeChart的整合

1、添加相应的jar包(除struts2所必需的包以外的包):

  1. struts2-jfreechart-plugin-2.3.12.jar
  2. jcommon-1.0.17.jar
  3. jfreechart-1.0.14.jar

2、添加相应的Action

 

package cn.hpu.action;

import java.awt.Font;
import java.util.List;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;

import cn.hpu.po.Complain;
import cn.hpu.po.DDInfo;
import cn.hpu.service.ComplainService;
import cn.hpu.service.DDInfoService;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class ComplainAction extends ActionSupport {

	private ComplainService complainService;
	private DDInfoService ddInfoService;
	
	private List<Complain> complains;
	
	private List<DDInfo> satisfications;
	
	// 生成图形
	private JFreeChart chart;

	/**获取用户满意度饼状报表
	 * @author qinrui
	 * @see cn.hpu.service.ComplainService complainService
	 * @see cn.hpu.service.DDInfoService ddInfoService
	 * @return java.lang.String
	 */
	public String pieChart() {
		
		DefaultPieDataset dpd = new DefaultPieDataset();
	
		complains = complainService.loadComplains();
		satisfications = ddInfoService.loadCustomerSatisfications();
		
		for(DDInfo satisfication : satisfications) {
			
			if(satisfication.getName() != null && !"".equals(satisfication.getName().trim())) {
				
				int count = 0;
				
				for(Complain complain : complains) {
					
					if(complain.getSatisfication().getId().equals(satisfication.getId())) {
						count ++;
					}
				}
				dpd.setValue(satisfication.getName(), count);
			}
		}
		
		StandardChartTheme standardChartTheme=new StandardChartTheme("CN");    
        //设置标题字体    
        standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20));    
        //设置图例的字体    
        standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15));    
        //设置轴向的字体    
        standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15));    
        //应用主题样式    
        ChartFactory.setChartTheme(standardChartTheme);
		
		/**生成图形
		 * 1.title java.lang.String 标题
		 * 2.dataset org.jfree.data.general.DefaultPieDataset 数据源
		 * 3.legend java.lang.Boolean 图例
		 * 4.tooltips java.lang.Boolean 工具提示信息
		 * 5.locale java.lang.Boolean 本地化
		 */
		chart = ChartFactory.createPieChart3D("客户满意度", dpd, true, true, false);
		
		return SUCCESS;
	}
	
	/**生成柱状报表
	 * @author qinrui
	 * @see cn.hpu.service.ComplainService complainService
	 * @see cn.hpu.service.DDInfoService ddInfoService
	 * @return java.lang.String
	 */
	public String barChart() {

		DefaultCategoryDataset dcd = new DefaultCategoryDataset();
	
		complains = complainService.loadComplains();
		satisfications = ddInfoService.loadCustomerSatisfications();
		
		for(DDInfo satisfication : satisfications) {
			
			if(satisfication.getName() != null && !"".equals(satisfication.getName().trim())) {
				
				int count = 0;
				
				for(Complain complain : complains) {
					
					if(complain.getSatisfication().getId().equals(satisfication.getId())) {
						count ++;
					}
				}
				dcd.setValue(count , "", satisfication.getName());
			}
		}
		
		StandardChartTheme standardChartTheme=new StandardChartTheme("CN");    
        //设置标题字体    
        standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20));    
        //设置图例的字体    
        standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15));    
        //设置轴向的字体    
        standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15));    
        //应用主题样式    
        ChartFactory.setChartTheme(standardChartTheme);
		
		/**生成图形
		 * 1.title java.lang.String 标题
		 * 2.dataset org.jfree.data.general.DefaultPieDataset 数据源
		 * 3.legend java.lang.Boolean 图例
		 * 4.tooltips java.lang.Boolean 工具提示信息
		 * 5.locale java.lang.Boolean 本地化
		 */
		chart = ChartFactory.createBarChart("客户满意度", "满意程度", "投诉数量", dcd, PlotOrientation.VERTICAL, true, true, false);
		
		return SUCCESS;
	}
	
	public ComplainService getComplainService() {
		return complainService;
	}

	public void setComplainService(ComplainService complainService) {
		this.complainService = complainService;
	}

	public List<Complain> getComplains() {
		return complains;
	}

	public List<DDInfo> getSatisfications() {
		return satisfications;
	}

	public void setSatisfications(List<DDInfo> satisfications) {
		this.satisfications = satisfications;
	}

	public DDInfoService getDdInfoService() {
		return ddInfoService;
	}

	public void setDdInfoService(DDInfoService ddInfoService) {
		this.ddInfoService = ddInfoService;
	}

	public JFreeChart getChart() {
		return chart;
	}

	public void setChart(JFreeChart chart) {
		this.chart = chart;
	}
}

 3、配置struts.xml文件(注意要继承jfreechart-default,返回值type为chart)

 

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	
	<package name="authority" namespace="/" extends="jfreechart-default">
		
		<!-- 生成饼状报表 -->
		<action name="Complain_pieChart" class="cn.hpu.action.ComplainAction" method="pieChart">
			<result type="chart">
				<param name="height">300</param>
				<param name="width">400</param>
			</result>
		</action>
		
		<!-- 生成柱状报表 -->
		<action name="Complain_barChart" class="cn.hpu.action.ComplainAction" method="barChart">
			<result type="chart">
				<param name="height">300</param>
				<param name="width">400</param>
			</result>
		</action>
	</package>

</struts>

 

 

分享到:
评论

相关推荐

    Struts+jfreeChart整合

    Struts+jfreeChart整合注意事项以及代码实现

    struts和jfreechart结合

    这个与动态生成表统计图有着很重要的关系。希望能帮助到大家。欢迎大家的下载。

    struts2整合 jfreechart 实现报表

    首先,整合Struts2和JFreeChart的首要步骤是确保在项目中引入JFreeChart和相关依赖。你需要在你的Maven或Gradle配置文件中添加JFreeChart的依赖,通常为以下形式: ```xml &lt;groupId&gt;org.jfree &lt;artifactId&gt;...

    struts2整合JFreechart

    struts2整合JFreechart: jcommon-1.0.16.jar jfreechart-1.0.13.jar struts2-jfreechart-plugin-2.0.11.jar 导成图片操作说明

    struts2与jfreechart整合

    在将Struts2与JFreeChart整合的过程中,主要涉及以下几个关键知识点: 1. **Struts2架构理解**:Struts2框架提供了Action、Interceptor(拦截器)、Result和ValueStack等核心概念,帮助开发者实现业务逻辑和视图的...

    struts2整合jfreechart

    本实例将讲解如何在Struts2框架中整合JFreeChart,以实现动态生成图表的功能。 首先,确保你已经安装了Struts2框架,并且在项目中配置了Struts2的核心库。这通常包括添加struts2-core.jar到类路径中,并在web.xml中...

    JFreeChart(Struts1+jFreeChart)

    综上所述,"JFreeChart(Struts1+jFreeChart)"的整合是Java Web开发中的一个典型应用场景,它结合了Struts1的MVC架构优势和JFreeChart的图表绘制能力,实现了动态数据的可视化展示。在实际项目中,还需要考虑如何优化...

    Struts2整合JFreeChart一

    Struts2应用开发系列Struts2整合JFreeChart

    Struts2整合JFreeChart六

    Struts2应用开发系列Struts2整合JFreeChart

    Struts2整合JFreeChart四

    Struts2应用开发系列Struts2整合JFreeChart

    Struts2整合JFreeChart三

    Struts2应用开发系列Struts2整合JFreeChart

    Struts2整合JFreeChart九

    Struts2应用开发系列Struts2整合JFreeChart

    Struts2整合JFreeChart十

    Struts2应用开发系列Struts2整合JFreeChart

    Struts2整合JFreeChart七

    Struts2应用开发系列Struts2整合JFreeChart

    Struts2整合JFreeChart八

    Struts2应用开发系列Struts2整合JFreeChart

    Struts2整合JFreeChart十一

    Struts2应用开发系列Struts2整合JFreeChart

    Struts2整合Jfreechart

    ### Struts2整合Jfreechart实现图表展示案例分析 #### 一、背景介绍 在Web应用开发中,数据可视化是一个非常重要的环节。Struts2作为一款流行的企业级Java Web框架,能够很好地与其他技术栈集成,比如JFreeChart,...

    struts2整合JFreeChart

    总的来说,Struts2与JFreeChart的整合是Java Web开发中常见的需求,它可以帮助我们创建交互式的、数据驱动的图表应用。通过理解JFreeChart的图表生成原理,掌握Struts2的Action和结果类型,以及熟悉Web应用的图像...

    Struts2整合jfreechart

    2. **Struts2整合JFreeChart**: - 首先,我们需要在项目中引入JFreeChart和Struts2的相关依赖库,如struts2-core、jfreechart以及jcommon库。 - 创建一个Action类,其中的方法负责生成图表数据和JFreeChart对象。...

Global site tag (gtag.js) - Google Analytics