Struts2与JFreeChart的整合
1、添加相应的jar包(除struts2所必需的包以外的包):
- struts2-jfreechart-plugin-2.3.12.jar
- jcommon-1.0.17.jar
- 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整合注意事项以及代码实现
这个与动态生成表统计图有着很重要的关系。希望能帮助到大家。欢迎大家的下载。
首先,整合Struts2和JFreeChart的首要步骤是确保在项目中引入JFreeChart和相关依赖。你需要在你的Maven或Gradle配置文件中添加JFreeChart的依赖,通常为以下形式: ```xml <groupId>org.jfree <artifactId>...
struts2整合JFreechart: jcommon-1.0.16.jar jfreechart-1.0.13.jar struts2-jfreechart-plugin-2.0.11.jar 导成图片操作说明
在将Struts2与JFreeChart整合的过程中,主要涉及以下几个关键知识点: 1. **Struts2架构理解**:Struts2框架提供了Action、Interceptor(拦截器)、Result和ValueStack等核心概念,帮助开发者实现业务逻辑和视图的...
本实例将讲解如何在Struts2框架中整合JFreeChart,以实现动态生成图表的功能。 首先,确保你已经安装了Struts2框架,并且在项目中配置了Struts2的核心库。这通常包括添加struts2-core.jar到类路径中,并在web.xml中...
综上所述,"JFreeChart(Struts1+jFreeChart)"的整合是Java Web开发中的一个典型应用场景,它结合了Struts1的MVC架构优势和JFreeChart的图表绘制能力,实现了动态数据的可视化展示。在实际项目中,还需要考虑如何优化...
Struts2应用开发系列Struts2整合JFreeChart
Struts2应用开发系列Struts2整合JFreeChart
Struts2应用开发系列Struts2整合JFreeChart
Struts2应用开发系列Struts2整合JFreeChart
Struts2应用开发系列Struts2整合JFreeChart
Struts2应用开发系列Struts2整合JFreeChart
Struts2应用开发系列Struts2整合JFreeChart
Struts2应用开发系列Struts2整合JFreeChart
Struts2应用开发系列Struts2整合JFreeChart
### Struts2整合Jfreechart实现图表展示案例分析 #### 一、背景介绍 在Web应用开发中,数据可视化是一个非常重要的环节。Struts2作为一款流行的企业级Java Web框架,能够很好地与其他技术栈集成,比如JFreeChart,...
总的来说,Struts2与JFreeChart的整合是Java Web开发中常见的需求,它可以帮助我们创建交互式的、数据驱动的图表应用。通过理解JFreeChart的图表生成原理,掌握Struts2的Action和结果类型,以及熟悉Web应用的图像...
2. **Struts2整合JFreeChart**: - 首先,我们需要在项目中引入JFreeChart和Struts2的相关依赖库,如struts2-core、jfreechart以及jcommon库。 - 创建一个Action类,其中的方法负责生成图表数据和JFreeChart对象。...