- 浏览: 7935856 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
李刚的文了,
http://www.ibm.com/developerworks/cn/java/j-lo-struts2-jfreechart/
关键部分,是struts2中,改写了插件.
分析 Struts 2 官方提供的 JFreeChart 插件不难发现,它的主要作用就是在页面中显示 Action 中的 JFreeChart 对象。因此 JFreeChart 插件所完成的工作非常有限,即使我们在 Struts 2 中整合了 JFreeChart 框架,我们依然需要自己手动创建 JFreeChart 实例,这是非常烦琐的事情。最理想的状况是我们只提供需要显示的数据,而 Struts 2 对 JFreeChart 进行封装,自动生成 JFreeChart 图表,并将其显示在 HTML 页面上。
下面我们将来介绍改进后的 JFreeChart 插件
改进 JFreeChart 插件
前面提到 Struts 2 的 JFreeChart 插件存在一些不够方便的地方,主要是 Struts 2 的 Action 还必须手动创建 JFreeChart 对象,这就显得比较繁琐了。
对于常见的饼图、柱状图,我们可以对 JFreeChart 插件进行适当改进,由 JFreeChart 插件来根据 Dataset 创建 JFreeChart 对象,这样就可以让 Struts 2 Action 开发者更加简便。
JFreeChart 插件的关键就是实现了一个名为“chart”的 Result Type,为了简化 JFreeChart 插件,我们改进这个名为“chart”的 Result Type,下面是改进过的 Result Type 类:
清单 4. CrazyChartResult.java
package org.crazyit.struts2.dispatcher;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.Result;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartFactory;
import org.jfree.data.general.*;
import org.jfree.data.category.CategoryDataset;
import org.jfree.chart.plot.PlotOrientation;
import org.apache.struts2.dispatcher.ChartResult;
import java.io.OutputStream;
public class CrazyChartResult extends ChartResult
{
private boolean chartSet;
private Dataset dataset;
private String chartType;
private String title;
public CrazyChartResult()
{
super();
}
// 省略了各属性的 setter 和 getter 方法
...
public void execute(ActionInvocation invocation) throws Exception
{
// 获取 dataset
if (!chartSet)
{
System.out.println("!!!!!!!!!!!");
dataset = (Dataset) invocation.getStack()
.findValue("dataset", Dataset.class);
}
// 如果 JFreeChart 不存在,Dataset 也不存在,那将引发异常
if (super.getChart() == null
&& dataset == null)
throw new NullPointerException(
"No JFreeChart object found on the stack with name "
+ super.getValue() + "且创建统计图表的 Dataset 也不存在!");
if (super.getChart() == null
&& dataset != null)
{
if (chartType.equals("pieChart"))
{
// 创建统计图
super.setChart(ChartFactory.createPieChart(
title, // 图表标题
(PieDataset)dataset, // 数据
true, // 是否显示图例
false, // 是否显示工具提示
false // 是否生成 URL
));
}
else if (chartType.equals("barChart"))
{
super.setChart(ChartFactory.createBarChart(
title,
"横座标",
"纵坐标",
(CategoryDataset)dataset,
PlotOrientation.HORIZONTAL,
true, // 是否显示图例
false, // 是否显示工具提示
false // 是否生成 URL
));
}
else
{
throw new IllegalArgumentException(
"该插件暂不支持" + chartType + "类型的统计图 .");
}
}
// 保证统计图表的高、宽数据存在。
if (super.getHeight() == null)
throw new NullPointerException("No height parameter was given.");
if (super.getWidth() == null)
throw new NullPointerException("No width parameter was given.");
// 获取输出图片的二进制输出流
OutputStream os = ServletActionContext
.getResponse().getOutputStream();
try
{
// 输出统计图
if ("png".equalsIgnoreCase(super.getType()))
ChartUtilities.writeChartAsPNG(os, super.getChart()
, super.getWidth(), super.getHeight());
else if ("jpg".equalsIgnoreCase(super.getType())
|| "jpeg".equalsIgnoreCase(super.getType()))
ChartUtilities.writeChartAsJPEG(os, super.getChart()
, super.getWidth(), super.getHeight());
else
throw new IllegalArgumentException(super.getType()
+ " is not a supported render type (only JPG and PNG are).");
}
finally
{
if (os != null) os.flush();
}
}
}
上面程序中粗体字代码就负责根据 Action 中 Dataset 来创建 JFreeChart 对象,从上面源代码中可以看出,这个 JFreeChart 插件只支持创建饼图和柱状图两种;如果开发者希望使用其他其他统计图,则依然需要手动创建 JFreeChart 对象。
提供了上面 CrazyChartResult 类之后,接下来为新的 Struts 2 插件提供 struts-plugin.xml 文件,这个文件的配置非常简单,只要将名为 chart 的 Result Type 改为使用 CrazyChartResult 类即可。下面是扩展后的 JFreeChart 插件中配置文件的代码:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="jfreechart-default" extends="struts-default">
<result-types>
<result-type name="chart"
class="org.crazyit.struts2.dispatcher.CrazyChartResult">
<param name="height">150</param>
<param name="width">200</param>
</result-type>
</result-types>
</package>
</struts>
从上面粗体字代码可以看出,此时的 JFreeChart 插件中名为“chart”的 Result Type 已经改为使用 CrazyChartResult 了,这就允许 Struts 2 中 Action 只要提供 Dataset 即可。
将这些资源打包成 JAR 文件,即可放在项目中正常使用了。扩展后的 JFreeChart 插件可下载本文的 struts2-crazytjfreechart-plugin-2.1.6.jar 附件。
使用改进后 JFreeChart 插件
提供了改进后的 JFreeChart 插件之后,接下来开发者开发的 Action 就会简单多了,下面的 Action 只有一个 getDataset() 方法,该方法返回创建 JFreeChart 的 Dataset 对象,不再需要手动创建 JFreeChart 对象——这个工作由扩展后的 JFreeChart 插件完成。
还是前面那个创建饼图的示例程序,但此时的 Action 就简单多了,下面是该 Action 类的代码:
清单 5. ChartAction.java
public class ChartAction extends ActionSupport
{
// 获取生成统计图的 Dataset
public DefaultPieDataset getDataset()
{
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("Java",47000);
dataset.setValue("Java EE",38000);
dataset.setValue("Ajax",31000);
dataset.setValue("Struts 2",29000);
dataset.setValue("XML",25000);
return dataset;
}
}
上面的 Action 类已经简化多了,该 Action 只需提供一个 Dataset 即可,剩下的事情都交给 JFreeChart 插件来完成。
当然,开发者还应该告诉 JFreeChart 需要创建怎样的统计图、统计图的标题等必要信息,因此配置该 Action 时需要更多的参数,下面是该 Action 的配置代码:
清单 6. struts.xml
<?xml version="1.0" encoding="GBK"?>
<!-- 指定 Struts 2 配置文件的 DTD 信息 -->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<!-- 配置 Struts 2 应用中的常量 -->
<constant name="struts.custom.i18n.resources"
value="messageResource"/>
<constant name="struts.i18n.encoding" value="GBK"/>
<!-- 配置本应用中的包,继承 jfreechart-default 包 -->
<package name="lee" extends="jfreechart-default">
<!-- 定义一个名为 bookChart 的 Action -->
<action name="bookChart" class="lee.ChartAction">
<result type="chart">
<!-- 定义 JFreeChart 报表的大小 -->
<param name="width">800</param>
<param name="height">600</param>
<!-- 指定统计图的标题 -->
<param name="title">Test Title</param>
<!-- 指定创建一个饼图 -->
<param name="chartType">pieChart</param>
</result>
</action>
</package>
</struts>
http://www.ibm.com/developerworks/cn/java/j-lo-struts2-jfreechart/
关键部分,是struts2中,改写了插件.
分析 Struts 2 官方提供的 JFreeChart 插件不难发现,它的主要作用就是在页面中显示 Action 中的 JFreeChart 对象。因此 JFreeChart 插件所完成的工作非常有限,即使我们在 Struts 2 中整合了 JFreeChart 框架,我们依然需要自己手动创建 JFreeChart 实例,这是非常烦琐的事情。最理想的状况是我们只提供需要显示的数据,而 Struts 2 对 JFreeChart 进行封装,自动生成 JFreeChart 图表,并将其显示在 HTML 页面上。
下面我们将来介绍改进后的 JFreeChart 插件
改进 JFreeChart 插件
前面提到 Struts 2 的 JFreeChart 插件存在一些不够方便的地方,主要是 Struts 2 的 Action 还必须手动创建 JFreeChart 对象,这就显得比较繁琐了。
对于常见的饼图、柱状图,我们可以对 JFreeChart 插件进行适当改进,由 JFreeChart 插件来根据 Dataset 创建 JFreeChart 对象,这样就可以让 Struts 2 Action 开发者更加简便。
JFreeChart 插件的关键就是实现了一个名为“chart”的 Result Type,为了简化 JFreeChart 插件,我们改进这个名为“chart”的 Result Type,下面是改进过的 Result Type 类:
清单 4. CrazyChartResult.java
package org.crazyit.struts2.dispatcher;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.Result;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartFactory;
import org.jfree.data.general.*;
import org.jfree.data.category.CategoryDataset;
import org.jfree.chart.plot.PlotOrientation;
import org.apache.struts2.dispatcher.ChartResult;
import java.io.OutputStream;
public class CrazyChartResult extends ChartResult
{
private boolean chartSet;
private Dataset dataset;
private String chartType;
private String title;
public CrazyChartResult()
{
super();
}
// 省略了各属性的 setter 和 getter 方法
...
public void execute(ActionInvocation invocation) throws Exception
{
// 获取 dataset
if (!chartSet)
{
System.out.println("!!!!!!!!!!!");
dataset = (Dataset) invocation.getStack()
.findValue("dataset", Dataset.class);
}
// 如果 JFreeChart 不存在,Dataset 也不存在,那将引发异常
if (super.getChart() == null
&& dataset == null)
throw new NullPointerException(
"No JFreeChart object found on the stack with name "
+ super.getValue() + "且创建统计图表的 Dataset 也不存在!");
if (super.getChart() == null
&& dataset != null)
{
if (chartType.equals("pieChart"))
{
// 创建统计图
super.setChart(ChartFactory.createPieChart(
title, // 图表标题
(PieDataset)dataset, // 数据
true, // 是否显示图例
false, // 是否显示工具提示
false // 是否生成 URL
));
}
else if (chartType.equals("barChart"))
{
super.setChart(ChartFactory.createBarChart(
title,
"横座标",
"纵坐标",
(CategoryDataset)dataset,
PlotOrientation.HORIZONTAL,
true, // 是否显示图例
false, // 是否显示工具提示
false // 是否生成 URL
));
}
else
{
throw new IllegalArgumentException(
"该插件暂不支持" + chartType + "类型的统计图 .");
}
}
// 保证统计图表的高、宽数据存在。
if (super.getHeight() == null)
throw new NullPointerException("No height parameter was given.");
if (super.getWidth() == null)
throw new NullPointerException("No width parameter was given.");
// 获取输出图片的二进制输出流
OutputStream os = ServletActionContext
.getResponse().getOutputStream();
try
{
// 输出统计图
if ("png".equalsIgnoreCase(super.getType()))
ChartUtilities.writeChartAsPNG(os, super.getChart()
, super.getWidth(), super.getHeight());
else if ("jpg".equalsIgnoreCase(super.getType())
|| "jpeg".equalsIgnoreCase(super.getType()))
ChartUtilities.writeChartAsJPEG(os, super.getChart()
, super.getWidth(), super.getHeight());
else
throw new IllegalArgumentException(super.getType()
+ " is not a supported render type (only JPG and PNG are).");
}
finally
{
if (os != null) os.flush();
}
}
}
上面程序中粗体字代码就负责根据 Action 中 Dataset 来创建 JFreeChart 对象,从上面源代码中可以看出,这个 JFreeChart 插件只支持创建饼图和柱状图两种;如果开发者希望使用其他其他统计图,则依然需要手动创建 JFreeChart 对象。
提供了上面 CrazyChartResult 类之后,接下来为新的 Struts 2 插件提供 struts-plugin.xml 文件,这个文件的配置非常简单,只要将名为 chart 的 Result Type 改为使用 CrazyChartResult 类即可。下面是扩展后的 JFreeChart 插件中配置文件的代码:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="jfreechart-default" extends="struts-default">
<result-types>
<result-type name="chart"
class="org.crazyit.struts2.dispatcher.CrazyChartResult">
<param name="height">150</param>
<param name="width">200</param>
</result-type>
</result-types>
</package>
</struts>
从上面粗体字代码可以看出,此时的 JFreeChart 插件中名为“chart”的 Result Type 已经改为使用 CrazyChartResult 了,这就允许 Struts 2 中 Action 只要提供 Dataset 即可。
将这些资源打包成 JAR 文件,即可放在项目中正常使用了。扩展后的 JFreeChart 插件可下载本文的 struts2-crazytjfreechart-plugin-2.1.6.jar 附件。
使用改进后 JFreeChart 插件
提供了改进后的 JFreeChart 插件之后,接下来开发者开发的 Action 就会简单多了,下面的 Action 只有一个 getDataset() 方法,该方法返回创建 JFreeChart 的 Dataset 对象,不再需要手动创建 JFreeChart 对象——这个工作由扩展后的 JFreeChart 插件完成。
还是前面那个创建饼图的示例程序,但此时的 Action 就简单多了,下面是该 Action 类的代码:
清单 5. ChartAction.java
public class ChartAction extends ActionSupport
{
// 获取生成统计图的 Dataset
public DefaultPieDataset getDataset()
{
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("Java",47000);
dataset.setValue("Java EE",38000);
dataset.setValue("Ajax",31000);
dataset.setValue("Struts 2",29000);
dataset.setValue("XML",25000);
return dataset;
}
}
上面的 Action 类已经简化多了,该 Action 只需提供一个 Dataset 即可,剩下的事情都交给 JFreeChart 插件来完成。
当然,开发者还应该告诉 JFreeChart 需要创建怎样的统计图、统计图的标题等必要信息,因此配置该 Action 时需要更多的参数,下面是该 Action 的配置代码:
清单 6. struts.xml
<?xml version="1.0" encoding="GBK"?>
<!-- 指定 Struts 2 配置文件的 DTD 信息 -->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<!-- 配置 Struts 2 应用中的常量 -->
<constant name="struts.custom.i18n.resources"
value="messageResource"/>
<constant name="struts.i18n.encoding" value="GBK"/>
<!-- 配置本应用中的包,继承 jfreechart-default 包 -->
<package name="lee" extends="jfreechart-default">
<!-- 定义一个名为 bookChart 的 Action -->
<action name="bookChart" class="lee.ChartAction">
<result type="chart">
<!-- 定义 JFreeChart 报表的大小 -->
<param name="width">800</param>
<param name="height">600</param>
<!-- 指定统计图的标题 -->
<param name="title">Test Title</param>
<!-- 指定创建一个饼图 -->
<param name="chartType">pieChart</param>
</result>
</action>
</package>
</struts>
发表评论
-
复习:强迫线程顺序执行方式
2019-01-03 23:42 1566方法1: 三个线程,t1,t2,t3,如果一定要按顺序执行, ... -
(转)不错的前后端处理异常的方法
2019-01-02 23:16 2017前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是 ... -
info q的极客时间大咖说等资料下载
2018-08-15 08:40 3463info q的极客时间大咖说等资料下载,还有不少思维导图 链 ... -
CXF 客户端超时时间设置(非Spring配置方式)
2018-07-03 22:38 2231import org.apache.cxf.endpoint. ... -
(转)synchronized关键字画像:正确打开方式
2018-06-14 09:25 489https://mp.weixin.qq.com/s/b3Sx ... -
CountDownLatch的例子
2018-06-13 14:10 683public class StatsDemo { ... -
两道面试题,带你解析Java类加载机制
2018-06-12 16:29 606https://mp.weixin.qq.com/s/YTa0 ... -
Spring中获取request的几种方法,及其线程安全性分析
2018-06-11 09:03 668https://mp.weixin.qq.com/s/KeFJ ... -
内部类小结
2018-06-06 10:25 432https://mp.weixin.qq.com/s/hErv ... -
JVM虚拟机小结1
2018-06-04 20:43 5381 jps -l //列出详细的类名和进程ID 2)jps ... -
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3095微软提供了不少命令行 ... -
(收藏)深入分析Java的序列化与反序列化
2018-05-30 15:21 612https://mp.weixin.qq.com/s/T2Bn ... -
apache common包中的序列化工具
2018-05-30 09:10 1842什么是序列化 我们的 ... -
JAVA8 JVM的变化: 元空间(Metaspace)
2018-05-24 22:30 962本文将会分享至今为至我收集的关于永久代(Permanent G ... -
(转)服务器性能指标(一)——负载(Load)分析及问题排查
2018-05-21 21:03 1359原创: Hollis Hollis 负载 ... -
(转)对象复用
2018-05-20 15:27 856public class Student { priv ... -
mapreduce中入门中要注意的几点
2018-05-06 08:59 668在 mapreduce中,比如有如下的词: I love b ... -
HDFS的基本操作
2018-05-02 21:47 936-mkdir 在HDFS创建目录 ... -
一个不错的开源工具类,专门用来解析日志头部的,好用
2018-05-02 20:00 767一个不错的开源工具类,专门用来解析日志头部的,好用。 http ... -
介绍个不错的RESTFUL MOCK的工具wiremock
2018-04-27 21:02 1903介绍个不错的RESTFUL MOCK的工具wiremock,地 ...
相关推荐
Struts2和JFreeChart是两个在Java开发中常用的库。Struts2是一个基于MVC设计模式的Web应用框架,用于构建动态、数据驱动的Java Web应用,而JFreeChart则是一个强大的图表生成库,可以生成各种类型的图表,如柱状图、...
总的来说,Struts2与JFreeChart的结合提供了在Java Web应用中生成动态图表的能力,帮助开发者将复杂的数据以直观的方式呈现给用户,从而增强用户体验和决策分析能力。通过合理的代码组织和API利用,可以实现高效且...
Struts2 和 JFreeChart 是两个在 Java 开发领域中常用的工具,它们分别负责Web应用程序的框架构建和数据可视化。Struts2 是一个强大的MVC(Model-View-Controller)框架,而 JFreeChart 是一个Java库,用于生成各种...
通过合理的配置和优化,Struts2和JFreeChart的整合可以提供高效、美观的图表展示,增强Web应用的数据可视化能力。 总结,Struts2作为MVC框架,提供了优秀的结构和控制流程,而JFreeChart则为Web应用带来了丰富的...
在Struts框架中使用JFreeChart是一个常见的需求,主要用于生成动态图表,比如饼图、柱状图、线图等,以便在Web应用中展示数据。JFreeChart是一个强大的Java库,能够创建各种复杂的统计图表,但与Struts结合时可能会...
通过Struts 2整合JFreeChart,开发者可以在Web应用中直接展示由JFreeChart生成的图表,简化了图表的呈现过程。 11.1.1 下载和安装JFreeChart 要开始使用JFreeChart,首先需要访问其官方网站(http://www.jfree.org...
综上所述,Struts2与JFreeChart的整合,不仅提升了Web应用的数据可视化能力,还增强了用户体验和应用的灵活性。通过合理配置和细致的编码实践,开发者可以充分利用这两种技术的优势,创建出功能强大且用户友好的Web...
在Struts2中集成JFreeChart可以帮助我们在web应用中创建交互式的图表展示,增强用户对复杂数据的理解。 在"在Struts2中使用JFreeChart"这个主题中,我们将探讨如何将这两个组件结合在一起,以便在Struts2的action中...
在Struts2中整合JFreeChart,可以方便地生成各种图表,如柱状图、饼图、线图等,用于数据可视化。JFreeChart是一个用Java编写的开源库,专门用于生成高质量的2D图表。 首先,我们需要理解Struts2的MVC设计模式。在...
Struts 2 JFreeChart 插件是用于在Java Web应用程序中集成JFreeChart库的一个组件,主要用于生成高质量的图表并展示。JFreeChart是一个强大的图表库,遵循LGPL许可,允许开发者在程序中自由使用它来创建各种图表,如...
在Struts2中,控制器Action类通常会处理业务逻辑,然后将结果模型返回给视图层。视图层可以是JSP、FreeMarker或其他模板技术。当我们需要在Struts2应用中使用JFreeChart时,可以创建一个Action,该Action负责生成...
Struts2和JFreeChart是两个在Java Web开发中广泛使用的工具,它们分别负责不同的功能。Struts2是一个强大的MVC(模型-视图-控制器)框架,它为构建基于Java Servlets的应用程序提供了结构化的支持,提高了开发效率并...
SSH2整合jfreechart是Java开发中的一个常见实践,它涉及到三个主要的开源框架:Struts2、Spring2.5和Hibernate3.2,以及一个用于数据可视化的库——JFreeChart。这些技术的整合旨在提供一个高效、灵活且可扩展的企业...
总结,jFreeChart是Java开发中的重要图表工具,而其与Struts2的整合则进一步增强了在Web应用中的使用场景。这份资源包提供了一条从理论到实践的完整路径,帮助开发者快速掌握jFreeChart的使用,并能够将其有效地集成...
2. **支持的图表类型**:JFreeChart支持多种图表类型,包括折线图、柱状图、饼图、散点图、甘特图、雷达图、热力图等,能够满足大多数数据可视化的需求。 3. **使用方法**:创建图表通常涉及以下几个步骤:初始化...
在Struts2框架中集成JFreeChart,首先要确保你的项目中已经包含了JFreeChart和Struts2的JFreeChart插件的相关依赖。这些依赖可以通过Maven或Gradle等构建工具进行管理。然后,你需要在Struts2的配置文件中声明...
**struts2.txt** 文件可能是关于Struts2框架的文档或配置信息,与JFreeChart不直接相关,但可能表明这个项目或应用是基于Struts2构建的,JFreeChart的图表功能可能被整合到Struts2的视图层中。 **"jfreechart 总结....
在这个整合项目中,开发者可能展示了如何在Struts2中集成Hibernate,利用Spring进行依赖注入,从而在业务逻辑层处理数据。同时,使用JFreeChart生成图表,展示数据的可视化结果。项目还涉及了Excel和PDF的导出功能,...
首先,集成JFreeChart到Struts2项目中,需要添加必要的依赖库。这包括Struts2的JFreeChart插件jar包`struts2-jfreechart-plugin-2.0.11.jar`,JFreeChart库本身`jfreechart-1.0.9.jar`以及它的依赖库`jcommon-1.0.12...