ssh|Struts 2 JFreeChart 插件使用官方文档中文版

English Version: http://struts.apache.org/2.x/docs/jfreechart-plugin.html
相关代码(点击即可下载, MyEclipse开发): [原创] Struts2 + Spring2.5 + JFreeChart 实现的投票系统,2008年高考作文评价投票 http://www.ojava.net/read.php?tid=7944&page=e


以下是正文:

JFreeChart 是一完全免费的 Java (LGPL) 图表类库, 开发人员使用它可以很容易的在自己的程序中显示专业质量的图表.
JFreeChart 插件可以让 Action 很容易的返回生成的图表和图片.

并非采用流的方式直接将生成的图表写入HTTP的响应, 这个插件提供了一个 ChartResult, 来替你完成生成图片的工作. 这样您就可以在一个类里面生成图表, 而在另一个类中进行显示, 有效的将视图层和Action类隔离开来. 另外您也可以很容易的根据自己的意愿将它输出到文件中或者其他类型的视图, 而不是仅仅作为一个网络方式的HTTP响应来输出.

功能
处理图表并将其输出到HTTP响应
可在其他非Web环境下使用
下一步的任务
当前版本的 "chart" 属性是硬编码的. 应该有一些更好的办法来从Action层传递到Result层, 例如通过外部定义的变量或者其他方式.

像邮件列表的 John Patterson 朋友提到的那样, Action 仍然依赖于 JFreeChart Chart 类. 这一点大有改进的余地. 将Action和View分开将会更清晰一些. 一个图表格式的 List 或者 Array 可作为数据层, 而图表的显示细节的内容 (字体, 坐标等...)可通过在xwork.xml(译者注:Struts 2应为struts.xml)中的结果的属性中进行配置.

不过, 现在这种方式已经能够很好的工作了. 欢迎提出更多的简易.


您也可以通过直接使用CeWolf 类库来创建图表. 参见 CeWolf charts using Velocity templates.

用法
要用这个插件, 只需要让您的Struts 配置包(package)继承自 jfreechart-default 包即可, 这个包提供了 chart 结果类型(result type). 接着, 将它作为一个 action 的 result 即可:

struts.xml中的图表配置例子


【ssh|Struts 2 JFreeChart 插件使用官方文档中文版】400
300


在您的 Action 类中, 提供一个 getChart() 方法, 来返回需要显示的图表. 这个方法将会被 chart result 调用.

    推荐阅读