jfreechart和springMVC+maven整合

高校的项目中一个功能是对统计的成绩进行图表分析,查找了一些资料之后感觉jfreechar上手挺快的,简单的做了几个demo也都很好实现,也能够满足项目中的需求,所以就决定使用这个工具。这里就将学习到的一些关于jfreechar的知识整理一下。

1.    引入jar包

使用这个工具一定要将他的包引入的到项目,在高校的项目中使采用maven管理这些外部文件的,所以对于引入jar包这一步就变得特别简单了,只要在maven项目的pom.xml文件中添加jfreechar的依赖就可以(maven会自动在仓库中检索jar包然后下载到本地)

	<dependency>
<span style="white-space:pre">	</span>    <groupId>jfreechart</groupId>
	    <artifactId>jfreechart</artifactId>
	    <version>1.0.0</version>
	</dependency>

之后我们就会在Maven Depenencies中看到jfreechar需要的jar包了(如果没有的话可以update project—快捷键是ALT+F5)。

2.    修改web.xml文件

在web.xml文件中添加如下代码

<!-- jfreechart报表配置 -->
    <servlet>
        <servlet-name>DisplayChart</servlet-name>
        <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>DisplayChart</servlet-name>
        <url-pattern>/chart</url-pattern>
</servlet-mapping>

上面两步就是jfreechar和springMVC+maven的整合。

3. 实现一个柱形图

下面就做一个小例子来熟悉一个这个工具—创建一个柱形图

web层中controller中代码

package com.tgb.itoo.chart.controller;

import java.awt.Font;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jfree.chart.ChartColor;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class ColumnChartController {

	@RequestMapping("/resultmap")
	public String resultmap(){
		return "/resultmap";
	}

	//显示柱状图
    @RequestMapping(value = "/getColumnChart")
    public ModelAndView getColumnChart(HttpServletRequest request,HttpServletResponse response, ModelMap modelMap) throws Exception{
    	//1. 获得数据集合
        CategoryDataset dataset = getDataSet();
        //2. 创建柱状图
        JFreeChart chart = ChartFactory.createBarChart3D("学生对教师授课满意度", // 图表标题
                "课程名", // 目录轴的显示标签
                "百分比", // 数值轴的显示标签
                dataset, // 数据集
                PlotOrientation.VERTICAL, // 图表方向:水平、垂直
                false, // 是否显示图例(对于简单的柱状图必须是false)
                false, // 是否生成工具
                false // 是否生成URL链接
                );
        //3. 设置整个柱状图的颜色和文字(char对象的设置是针对整个图形的设置)
        chart.setBackgroundPaint(ChartColor.WHITE); // 设置总的背景颜色

        //4. 获得图形对象,并通过此对象对图形的颜色文字进行设置
        CategoryPlot p = chart.getCategoryPlot();// 获得图表对象
        p.setBackgroundPaint(ChartColor.lightGray);//图形背景颜色
        p.setRangeGridlinePaint(ChartColor.WHITE);//图形表格颜色

        //5. 设置柱子宽度
        BarRenderer renderer = (BarRenderer)p.getRenderer();
        renderer.setMaximumBarWidth(0.06);

        //解决乱码问题
        getChartByFont(chart);

        //6. 将图形转换为图片,传到前台
        String fileName = ServletUtilities.saveChartAsJPEG(chart, 700, 400, null, request.getSession());
        String chartURL=request.getContextPath() + "/chart?filename="+fileName;
        modelMap.put("chartURL", chartURL);
        return new ModelAndView("resultmap",modelMap);
    }

    //设置文字样式
    private static void getChartByFont(JFreeChart chart) {
    	//1. 图形标题文字设置
        TextTitle textTitle = chart.getTitle();
        textTitle.setFont(new Font("宋体",Font.BOLD,20));

        //2. 图形X轴坐标文字的设置
        CategoryPlot plot = (CategoryPlot) chart.getPlot();
        CategoryAxis axis = plot.getDomainAxis();
        axis.setLabelFont(new Font("宋体",Font.BOLD,22));  //设置X轴坐标上标题的文字
        axis.setTickLabelFont(new Font("宋体",Font.BOLD,15));  //设置X轴坐标上的文字

      //2. 图形Y轴坐标文字的设置
        ValueAxis valueAxis = plot.getRangeAxis();
        valueAxis.setLabelFont(new Font("宋体",Font.BOLD,15));  //设置Y轴坐标上标题的文字
        valueAxis.setTickLabelFont(new Font("sans-serif",Font.BOLD,12));//设置Y轴坐标上的文字
    }

    // 获取一个演示用的组合数据集对象
    private static CategoryDataset getDataSet() {
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(40, "", "普通动物学");
        dataset.addValue(50, "", "生物学");
        dataset.addValue(60, "", "动物解剖学");
        dataset.addValue(70, "", "生物理论课");
        dataset.addValue(80, "", "动物理论课");
        return dataset;
    }
}

spring-mvc中的配置

	<bean name="columnChartController"  class="com.tgb.itoo.chart.controller.ColumnChartController" />

web层中jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
   <base href="<%=basePath%>">
 </head>
  <body>
	  <div  style="text-align:center">
		   jfreechart _3D柱状图 <br><br>
		  点击显示柱状图<a href="getColumnChart">getMajorChart</a>
		 <br><br>
		 <img src="${chartURL}"  width=600 height=400  border=0  color=gray>
	  </div>

  </body>
</html>

结果展示:

时间: 2024-10-18 20:40:00

jfreechart和springMVC+maven整合的相关文章

myBatis+SpringMVC+Maven整合

一.先创建表结构 二.使用generator通过表结构自动生成model和dao.mapper 使用步骤: 1.解压generator.rar文件 2.文件中的generator.xml文件需要进行修改,修改里面的文件生成地址 3.打开生成语句.txt文件,复制出里面的内容,回到该文件所在目录下,右键-->打开命令窗口,将该命令执行,将会在相应的目录下生成文件Model,Dao.Mapper 生成的文件包括mapper.xml中生成的封装语句,已办是不够用的,需要后期添加和修改 注意:文件路径不

SpringMVC+maven框架快速搭建步骤

SpringMVC+Maven整合(注解形式) SpringMVC是目前比较主流的框架,加上注解形式,大大的增加了开发人员的效率,而且采用注解的形式,省去了很多的XML的配置,使代码看起来清晰度提升了很多. 下面教大家如何配置,这里创建工程就不一一介绍了,我们直接从pom.xml的配置开始. 1.SpringMVC所用到的Maven坐标 <properties> <spring-version>3.1.0.RELEASE</spring-version> </pr

idea+springmvc+spring+mybatis+maven整合返回json数据webapi

首先看一张目录结构图: : 创建步骤: 1.创建maven  webapp工程, 创建完后的目录结构为: 2.添加项目依赖(添加jar包) 需要的jar包: spring-webmvc, spring-test, spring-orm, commons-dbcp, mybatis, mybatis-spring, mysql-connector-java, commons-fileupload, jstl,jackson-core, jackson-databind, jackson-mappe

用Maven整合SpringMVC+Spring+Hibernate 框架,实现简单的插入数据库数据功能(二)

前一篇写的有些多,大家先看前一篇,传送门 具体的资源已将上传到资源了. 附地址:MySQL.zip启动 用Maven整合SpringMVC+Spring+Hibernate 框架 上文我们直接搭建前的准备和资源配置都写好了,下面进入具体代码编写.承接上文的小3 3.我习惯建立接口,这样对整个项目感觉更合理. (1.)建立IBaseService(业务逻辑层,有的习惯写成BaseServiceI)都可以,都是标注接口的,我只是简单的贴下代码 package com.jesus.sshframewo

IDEA下使用maven构建web项目(SpringMVC+Mybatis整合)

需求背景:由于最近总是接到一些需求,需要配合前端团队快速建设移动端UI应用或web应用及后台业务逻辑支撑的需求,若每次都复用之前复杂业务应用的项目代码,总会携带很多暂时不会用到的功能或组件,这样的初始工程就存在冗余代码. 在本文中,我们将使用Java语言开发集成环境IntelliJ IDEA(其倡言是智能编码?),应用maven构建SpringMVC整合Mybatis+MySQL5.7(流行框架)的web项目:目的在于快速构建一个简洁纯净版的web应用工程,将其作为一个基础web-demo,以便

用Maven整合SpringMVC+Spring+Hibernate 框架

用Maven整合SpringMVC+Spring+Hibernate 框架, 实现简单的插入数据库数据 一.搭建开始前的准备 1.打开MyEclipse新建Maven项目.File>New>Other(或Ctrl+N)>Maven Project:然后我们用default Workspace就行了(注意Location的路径,区分目录名和项目名):然后再Filter中输入webapp,我们选择org.apache.maven.archetypes 下的maven-archetype-we

SpringMVC+Spring+Mybatis+Maven整合-使用的工具

STS(Spring Tool Suite):是免费的一款基于Eclipse的Spring开发的定制版IDE,其官方下载地址为 http://www.springsource.org/downloads/sts-ggts 我选择的是现在最新的4.3.1版本,64位. 安装自不必细说. Tomcat:自己百度 JDK:自己谷歌 Mybatis generator:代码生成工具,下一篇中将详细介绍使用 http://code.google.com/p/mybatis/wiki/Downloads?t

最新SpringMVC+Spring4.1.1+hibernate4.3.5+maven 整合详细楝及说明

最新SpringMVC+Spring4.1.1+hibernate4.3.5+maven 整合详细配置 app主配置web.xml文件如下: <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/java

使用maven整合spring+springmvc+mybatis

使用maven整合spring+springmvc+mybatis 开发环境: 1. jdk1.8 2. eclipse4.7.0 (Oxygen) 3. mysql 5.7 在pom.xml文件中,引入我们需要的jar包:(按需引入jar包) <properties> <!-- 自定义的spring的版本号 --> <spring.version>4.3.18.RELEASE</spring.version> <!-- 自定义的mybaits的版本号