Struts2+JFreeChart(1)

http://www.cnblogs.com/over140/articles/971663.html

前言
关于Struts2入门以及提高等在这里就不介绍了,但是关于Struts2的学习有以下推荐:

    1. struts2-showcase-2.0.6.war:这个是官方自带的Demo(struts-2.0.6-all.zipstruts-2.0.6apps目录下),非常全面,直接部署就可以了(很多朋友Struts2能学很好我估计还是直接从这里学来的)。
    2. wiki-WebWork:入了门的朋友应该都知道,strust2由webwork2和struts1.x合并起来的,但主要还是以webwork2为主,所以如果找不到Struts2的资料可以找WebWork资料看看。
    3. Max On Java的博客,他的博客的资料在中文的Struts2算是比较全的了,写得很详细。
    4. The Code ProjectGoogle – CodeSearchKoders:这几个代码搜索网站在我找不到中文资料甚至英文文章的时候帮了我大忙!

关于JFreeChart入门等这里我也不打算介绍了,中文资料很多了。


正题
下面以边帖图片和代码的方式来讲解Struts2与JFreeChart的整合。
搭建环境:首先帖一张工程的目录结构以及所需的jar包。注意:如果你不打算自己写ChartResult的话只需要引入struts2-jfreechart-plugin-2.0.6.jar(这个在struts-2.0.6-all.zip可以找到了):

1.依次帖web.xml、struts.xml、struts.properties和struts-jfreechart.xml几个配置文件的代码:
web.xml
<?xml version=”1.0″ encoding=”UTF-8″?>
<web-app version=”2.4″
xmlns=”http://java.sun.com/xml/ns/j2ee”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd”>

<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>         struts.xml
<?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>
<include file=”struts-jfreechart.xml” />
</struts>         struts.properties
struts.ui.theme=simple         struts-jfreechart.xml <!DOCTYPE struts PUBLIC
“-//Apache Software Foundation//DTD Struts Configuration 2.0//EN”
“http://struts.apache.org/dtds/struts-2.0.dtd”>
<struts>
<package name=”jFreeChartDemonstration” extends=”struts-default”
namespace=”/jfreechart”>
<result-types>
<result-type name=”chart” class=”org.apache.struts2.dispatcher.ChartResult”></result-type>
</result-types>
<action name=”JFreeChartAction” class=”com.tangjun.struts2.JFreeChartAction”>
<result type=”chart”>
<param name=”width”>400</param>
<param name=”height”>300</param>
</result>
</action>
</package>
</struts>         说明:这里只需要说明下struts-jfreechart.xml,这里直接调用已经写好的类ChartResult,这个类是继承自com.opensymphony.xwork2.Result,传入生成图片大小的参数width和height就可以了。

2. 新建JFreeChartAction继承ActionSupport,生成JFreeChart对象并保存到chart中,注意这个名称是固定的。
package com.tangjun.struts2;

import com.opensymphony.xwork2.ActionSupport;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;

public class JFreeChartAction extends ActionSupport {

/**
*
*/
private static final long serialVersionUID = 5752180822913527064L;

//供ChartResult调用->ActionInvocation.getStack().findValue(“chart”)
private JFreeChart chart;

@Override
public String execute() throws Exception {
//设置数据
DefaultPieDataset data = new DefaultPieDataset();
data.setValue(“Java”, new Double(43.2));
data.setValue(“Visual Basic”, new Double(1.0));
data.setValue(“C/C++”, new Double(17.5));
data.setValue(“tangjun”, new Double(60.0));
//生成JFreeChart对象
chart = ChartFactory.createPieChart(“Pie Chart”, data, true,true, false);

return SUCCESS;
}

public JFreeChart getChart() {
return chart;
}

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

OK!至此代码已经全部贴完。
输入访问 http://localhost:8080/Struts2JFreeChart/jfreechart/JFreeChartAction.action
显示结果如下:


发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>