struts2+MySQL+jfreechart

1.所需要的jar包如图1所示

2.工程目录的格式如图2所示

2.新建配置文件(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.lyf.jf.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就可以了。

3.新建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>

4.修改web.xml文件

<welcome-file-list>

<welcome-file>/index.jsp</welcome-file>

</welcome-file-list>

<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>

5.新建index.jsp页面

<%@ page language="java" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%@ taglib uri="/struts-tags" prefix="s"%>

<html>

<head>

<title>2010计算机编程语言市场份</title>

</head>

<body>

<h2>

<center>2010计算机编程图书销量统计图</center>

</h2>

<center>

<img src="<s:url value=‘jfreechart/JFreeChartAction.action‘/>" />

</center>

</body>

</html>

6.新建JFreeChartAction继承ActionSupport,生成JFreeChart对象并保存到chart中

package com.lyf.jf;

import java.awt.Color;

import java.awt.Font;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.StandardChartTheme;

import org.jfree.chart.labels.StandardPieSectionLabelGenerator;

import org.jfree.chart.plot.PiePlot;

import org.jfree.chart.title.LegendTitle;

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 JFreeChartAction extends ActionSupport {

static final long serialVersionUID = 0L;

/**

* JFreeChart对象chart,注意这个名称是固定的。

* 供ChartResult调用->ActionInvocation.getStack().findValue("chart")

*/

private JFreeChart chart;

// 定义图表的宽度

private Integer width;

// 定义图表的长度

private Integer height;

@Override

public String execute() throws Exception {

width = 400;

height = 300;

// 生成JFreeChart对象

makePieChart();

return SUCCESS;

}

// 生成饼图

public void makePieChart() {

// 设置数据

PieDataset data;

data=createDataset();

//解决乱码问题(不能显示中文的问题)

StandardChartTheme mChartTheme = new StandardChartTheme("CN");

mChartTheme.setLargeFont(new Font("黑体", Font.BOLD, 20));

mChartTheme.setExtraLargeFont(new Font("宋体", Font.PLAIN, 15)); //标题

mChartTheme.setRegularFont(new Font("宋体", Font.PLAIN, 15));

ChartFactory.setChartTheme(mChartTheme);

chart = ChartFactory.createPieChart("图书销量统计图", // 图表标题

data, // 数据

true, // 是否显示图例

false, // 是否显示工具提示

false // 是否生成URL

);

//设置一系列的属性

//获得饼图的Plot对象

PiePlot plot = (PiePlot)chart.getPlot();

//用来显示标注的注解,{0}:{1}用来设置显示的格式

plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}:{1}"));

plot.setBackgroundPaint(Color.gray);//设置背景色

//设置简单标签

plot.setSimpleLabels(true);

//标题

TextTitle texttitle=chart.getTitle();

texttitle.setFont(new Font("宋体", Font.BOLD, 30));

//图示

LegendTitle legendtitle =chart.getLegend();

legendtitle.setItemFont(new Font("宋体", Font.BOLD, 14));

//设定背景透明度(0-1.0之间)

plot.setBackgroundAlpha(0.5f);

//设定前景透明度(0-1.0之间)

plot.setForegroundAlpha(0.60f);

}

//准备数据集(连接MySQL数据库)

private PieDataset createDataset() {

double[][] table = null;

String[] name = null;

String[] number = null;

int result = 0;

try{

Class.forName("com.mysql.jdbc.Driver").newInstance();

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/sale", "root", "fab");

ResultSet rs = conn.createStatement().executeQuery("select name,number from sale");

// 取得行数

if (rs.last()){

result = rs.getRow();

rs.beforeFirst(); // 指针回滚

}

table = new double[result][rs.getMetaData().getColumnCount() - 1];// 定义存放数据的二维数组

name = new String[result];

number = new String[rs.getMetaData().getColumnCount() - 1]; // 定义存放数据表头的一维数组

rs.next();

for (int j = 0; j < rs.getMetaData().getColumnCount() - 1; j++) {

number[j] = rs.getMetaData().getColumnName(j + 2); // 取出表头并存放数组

}

int i = 0;

rs.beforeFirst();

while (rs.next()) {

name[i] = rs.getString(1);

for (int j = 0; j < rs.getMetaData().getColumnCount() - 1; j++)

table[i][j] = rs.getDouble(j + 2); // 取出数据并存入二维数组

i++;

}

conn.close(); // 关闭连接

rs.close(); // 关闭查询

} catch (Exception ex) {

System.err.println("Exception:" + ex.getMessage());

}

//创建DefaultPieDataset类型的数据集,并行数据集中添加数据(从数据库中取的数据)

DefaultPieDataset dataset = new DefaultPieDataset();

for (int i = 0; i < number.length; i++)

for (int j = 0; j < result; j++) {

dataset.setValue(name[j],table[j][i] );

//调试用

System.out.println(table[j][i]);

System.out.println(name[j]);

}

return dataset;

}

public JFreeChart getChart() {

return chart;

}

public void setChart(JFreeChart chart) {

this.chart = chart;

}

public Integer getWidth() {

return width;

}

public void setWidth(Integer width) {

this.width = width;

}

public Integer getHeight() {

return height;

}

public void setHeight(Integer height) {

this.height = height;

}

}

7.数据库脚本

/*

SQLyog 企业版 - MySQL GUI v7.14

MySQL - 5.0.18-nt : Database - sale

*********************************************************************

*/

/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=‘‘*/;

/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE=‘NO_AUTO_VALUE_ON_ZERO‘ */;

CREATE DATABASE /*!32312 IF NOT EXISTS*/`sale` /*!40100 DEFAULT CHARACTER SET gbk */;

USE `sale`;

/*Table structure for table `sale` */

DROP TABLE IF EXISTS `sale`;

CREATE TABLE `sale` (

`name` varchar(150) default NULL COMMENT ‘书名‘,

`number` varchar(150) default NULL COMMENT ‘数量‘

) ENGINE=InnoDB DEFAULT CHARSET=gbk;

/*Data for the table `sale` */

insert into `sale`(`name`,`number`) values (‘C++‘,‘20‘),(‘Java‘,‘20‘),(‘数据结构‘,‘30‘),(‘安卓‘,‘40‘),(‘IOS‘,‘25‘);

/*!40101 SET [email protected]_SQL_MODE */;

/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;

8.通过http://localhost:8080/JavafreeChartReport/请求访问,就会出现如下图3所示:

时间: 2024-10-21 10:16:42

struts2+MySQL+jfreechart的相关文章

struts2+MySQL+jfreechart生成带热点

1.在myeclipse中创建Webproject工程,本工程名为:JavafreeChartReport 2.所需要的jar包如下图所示 3.工程目录的格式如下图所示 4.新建struts.xml文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration

struts2中 JFreeChart使用

添加3个包 struts2-jfreechart-plugin-2.3.16.3.jar jcommon-1.0.16.jar jfreechart-1.0.13.jar struts.xml中配置 查看struts2-jfreechart-plugin-2.3.16.3.jar中的struts-plugin.xml文件 查看其中的定义的东西 然后写着struts.xml中 1 <package name="freechart" extends="jfreechart-

java web: eclipse &amp; maven &amp; jetty &amp; struts2 &amp; mysql = 简单登录页面

第一次接触java web开发,花费了一天半的时间,写了个简单的登录页面,以此文为记. 开发工具 Eclipse Luna Release (4.4.0) 已集成maven,maven目前的体会就是管理各种依赖 jetty为maven提供的一个插件,类似tomcat struts2框架,MVC,action,jsp mysql server 5.6 开发过程 1. 新建Maven web工程 Group Id: org.apache.maven.archetypes Artifact Id: m

struts2整合jfreechart

需要的包: struts2-jfreechart-plugin-2.2.1.1.jar jfreechart-1.0.13.jar jcommon-1.0.17.jar 前台jsp页面中可以使用iframe显示图表,代码 <iframe id="frm1" name="frm1" src="/lzmgzyx/jfreechart.action" style="width:100%;height:700px"><

Struts2 + MySQL 实现文件上传

代码结构: package com.action; import java.util.List; import java.util.Map; import com.bean.Pager; import com.bean.UserInfo; import com.dao.LendDao; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class L

jfreechart 结合 struts2

action 1 package kite.struts2.action; 2 3 import java.awt.Font; 4 import java.io.ByteArrayInputStream; 5 import java.io.ByteArrayOutputStream; 6 import java.io.InputStream; 7 8 import javax.annotation.Resource; 9 10 import org.jfree.chart.ChartFactor

(转)Struts2+JFreeChart 环境搭建个基本用法!

正题      下面以边帖图片和代码的方式来讲解Struts2与JFreeChart的整合.      搭建环境:首先帖一张工程的目录结构以及所需的jar包.注意:如果你不打算自己写ChartResult的话只需要引入struts2-jfreechart-plugin-2.0.6.jar(这个在struts-2.0.6-all.zip可以找到了):           注意:除去struts2需要的基本包外,Jfreechart所用到的包就是最下面的那三个! 1.依次帖web.xml.strut

Struts2+JFreeChart

前言 关于Struts2入门以及提高等在这里就不介绍了,但是关于Struts2的学习有以下推荐: struts2-showcase-2.0.6.war:这个是官方自带的Demo(struts-2.0.6-all.zip\struts-2.0.6\apps目录下),非常全面,直接部署就可以了(很多朋友Struts2能学很好我估计还是直接从这里学来的). wiki-WebWork:入了门的朋友应该都知道,strust2由webwork2和struts1.x合并起来的,但主要还是以webwork2为主

★★JSP+Struts+Mysql构建的MVC三层框架对一张数据表的CURD

项目实现流程 大体流程:搭建环境 à 开发后台 à 开发前台 建立工程(struts2CURD),拷贝jar包,建立struts.xml文件,搭建环境 建立数据库和数据源配置:dbcpconfig.properties 建立db.sql:里面全是数据库操作的一些语句 建立操作数据库的工具:*.util:DBCPUtil.java,用于加载数据源.getDataSource(); *.Domain:User.java 继承ActionSupport,实现Serializable接口. ????写好