struts和jfreechart

来源:互联网 发布:编程源代码是什么意思 编辑:程序博客网 时间:2024/06/03 23:46
jfreechart与struts的整合
1. 创建一个struts工程
   首先要搭建一个struts的工程,这里主要讲解jfreechart和struts的整合,struts项目的如何搭建这里不在
   赘述;

2.  copy struts2 jfreechart的插件
    jfreechart是作为struts的一个插件形式和struts整合的,首先要把struts中关于jfreechar的插件包(struts2-jfreechart-plugin-2.3.14.jar)
   导到struts的工程的lib目录下,这个文件在struts的lib包中可以找到,在这个jar包中就两个文件,一个配置文件struts-plugin.xml和一个java类文件
    org.apache.struts2.dispatcher.ChartResult,这个类文件定义了一个结果集;在struts-plugin.xml配置了一个包和一个结果集,这个包
    继承自struts-default

    其内容如下:

     <package name="jfreechart-default" extends="struts-default">        <result-types>    <result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult">    <param name="height">150</param>    <param name="width">200</param>    </result-type>    </result-types>     </package>

3. copy jfreechart的jar包
   jfreechart是一个开源的矿建我们可以在他们的官网上下载
   下载后解压找到其中的lib包,其中有两个jar包jcommon-1.0.17.jar和jfreechart-1.0.14.jar,将这两个jar包
   拷贝到我们的工程的lib目录下,这样环境我们就搭建好了!

   提醒:
   在解压后的文件中有这么一个jar包,jfreechart-1.0.14-demo.jar,这里包裹全部jfreechart可以做的图形
   demo,我们可以查看其中jfreechart能做出来的各种各样的图形,
   打开windows的dos窗口将目录切换到jfreechart-1.0.14-demo.jar多在的目录,运行java命令执行这个文件
   java -jar jfreechart-1.0.14-demo.jar
   这样就可以打开这个jar文件

4. 接下来我们来做第一个demo
   首先我们创建一个action
   代码如下:

package app.jfreechat;import java.awt.Font;import org.jfree.chart.ChartFactory;import org.jfree.chart.JFreeChart;import org.jfree.chart.title.TextTitle;import org.jfree.data.general.DefaultPieDataset;import org.jfree.data.general.PieDataset;import com.opensymphony.xwork2.ActionSupport;public class BookChart extends ActionSupport {//声明与ChartResult结果类型的属性"chart",同类型、同名的属性//java.lang.NullPointerException: No JFreeChart object found on the stack with name chart private JFreeChart chart;public PieDataset getDataset(){DefaultPieDataset localDefaultPieDataset = new DefaultPieDataset();localDefaultPieDataset.setValue("JAVA", 800000);localDefaultPieDataset.setValue("PHP", 400000);localDefaultPieDataset.setValue(".NET", 300000);localDefaultPieDataset.setValue("C++", 200000);localDefaultPieDataset.setValue("ANDROID", 1000000);return localDefaultPieDataset;}public JFreeChart getChart() {chart = ChartFactory.createPieChart3D("显示各学科情况图", //设置图形标题getDataset(), //获取显示数据false, //是否显示图例true, //是否显示工具提示false);//是否生成URL//处理一下中文乱码问题chart.setTitle(new TextTitle("显示各学科情况图",new java.awt.Font("宋体",Font.BOLD,22)));return chart;}}

5. 配置struts.xml文件

  <package name="default" namespace="/" extends="jfreechart-default">    <action name="bookAction" class="app.jfreemchar.action.BookCharAction"><result name="success" type="chart"><param name="height">600</param><param name="width">800</param></result>        </action>    </package>

  注意:
    这里的package必须继承jfreechart-default包,这样太能使用其中定义的结果集
    在这里的result的type类型必须为chart,这样才能被jfreechart的结果集来对我们的action的结果进行进一步的处理
    返回给mode层生成动态的网页相应给客户机
6. 在浏览器中输入 http://localhost/jfreechart/bookAction 这里jfreechart是你的项目的名字


原创粉丝点击