收藏私塾在线
 

欢迎您来到私塾在线网!   

请登录! 

免费注册 


struts2的笔记
状态: 离线
人气:571162
访问用户量:845
笔记经验:470
总积分:567
级别:普通会员
搜索本笔记
ta的交流分类
ta的交流主题贴(5)
ta的所有交流贴(5)
ta的全部笔记
全部笔记(89)
未分类笔记(3)
研磨struts2(86)
存档
2012-04(85)
2012-03(4)

2012-04-23 09:53:17
《研磨struts2》第十八章 结合JFreeChart 之 18.3 Struts2结合JFreeChart
浏览(5987)|评论(0)   交流分类:Java|笔记分类: 研磨struts2

18.3 Struts2结合JFreeChart

18.3.1构建结合环境

有了前面的基础,接下来可以来把Struts2与JFreeChart结合使用了。

先来构建结合开发的环境,很简单,只有一步工作,把struts2-jfreechart-plugin-2.1.8.1.jar拷入到web工程的lib下就可以了。

18.3.2 Struts2结合JFreeChart来画饼图

1:实现Action

JFreeChart作为一种结果类型,可以作为某个Action的Result。接下来就来编写一个Action,结合着JFreeChart来实现画饼图。

编写这种Action和编写普通的Action大大的不同。这种Action不需要execute方法,而是需要一个getChart方法,这个方法必须是公有的,且返回一个JFreeChart对象。

示例代码如下:

 

java代码:
public class PieAction  extends ActionSupport {	
	private static final Font font = new Font("simsun",Font.ITALIC,22);
	private static DefaultPieDataset getDataset(){
		DefaultPieDataset dataset = new DefaultPieDataset();
		dataset.setValue("本科生", 50);
		dataset.setValue("研究生", 30);
		dataset.setValue("博士", 20);
		return dataset;
	}
	public JFreeChart getChart(){
		final DefaultPieDataset dataset = getDataset();
		JFreeChart chart = ChartFactory.createPieChart("XX公司员工学历比例图",
				dataset,
				true,//是否有标题
				false,//是否有悬浮提示
				false//是否有连接
			);
		
		chart.setTitle(new TextTitle("XX公司员工学历比例图",font));
		
		//重新设置图例的字体,保证汉字的显示
		LegendTitle legend = chart.getLegend();
		legend.setItemFont(font);
		
		//重新设置统计表对象的字体,保证汉字的显示
		PiePlot plot = (PiePlot) chart.getPlot();
		plot.setBackgroundAlpha(0.9f);
		plot.setLabelFont(font);
		
		return chart;
	}
}

观察上面的两个方法getDataset和getChart,其实现方式和前面在Java中使用JFreeChart来画饼图的实现是一模一样的。仍然是getDataset方法提供饼形图要显示的数据,getChart方法用来设置饼形图的相关信息(如图例的字体,标题的字体等等)。

2:配置struts.xml

接下来看看在struts.xml中,Struts2是如何跟JFreeChart结合的,示例代码如下:

 

java代码:
    <package name="helloworld" extends="jfreechart-default">
        <action name="jfreechartAction" class="cn.javass.chart.PieAction">
        	<result type="chart">
        		<param name="width">400</param>
        		<param name="height">300</param>
        	</result>
        </action>
    </package>

在配置文件中,我们的包继承了jfreechart-default包;在我们的包中使用了jfreechart-default包中的chart这种<result-type>;然后通过给<result>元素设置<param>子元素来限定图形化报表的宽和高。

3:运行测试一下

       在IE浏览器中输入http://localhost:9080/helloworld/jfreechartAction.action,可以看到结果,如下图所示:

图18.4 使用Struts2与JFreeChart结合画出的饼图

18.3.3 Struts2结合JFreeChart来画柱状图

1:实现Action

跟上面Struts2结合JFreeChart来画饼图的过程类似,都是不需要execute方法的,都需要一个getChart方法,这个方法必须是公有的,且返回一个JFreeChart对象。

示例代码如下:

 

java代码:
public class BarAction extends ActionSupport {
	private static final Font font = new Font("simsun",Font.ITALIC,22);
	private static DefaultCategoryDataset getDataset(){
		DefaultCategoryDataset  dataset = new DefaultCategoryDataset();
		dataset.setValue(50,"本科生","本科生");
		dataset.setValue(30,"研究生","研究生");
		dataset.setValue(20,"博士","博士");
		return dataset;
	}
	public JFreeChart getChart(){
		final DefaultCategoryDataset dataset = getDataset();
		JFreeChart chart = ChartFactory.createBarChart3D("XX公司员工学历比例图","学历","人数",
				dataset,
				PlotOrientation.VERTICAL,
				true,
				false,
				false
			);
		
		chart.setTitle(new TextTitle("XX公司员工学历比例图",font));
		
		//重新设置图例的字体,保证汉字的显示
		LegendTitle legend = chart.getLegend();
		legend.setItemFont(font);
		
		//设置X轴坐标上的文字的字体
		chart.getCategoryPlot().getDomainAxis().setTickLabelFont(font);
		//设置X轴坐标标题的字体
		chart.getCategoryPlot().getDomainAxis().setLabelFont(font);
		
		//设置Y轴坐标上的文字的字体
		chart.getCategoryPlot().getRangeAxis().setTickLabelFont(font);
		//设置Y轴坐标标题的字体
		chart.getCategoryPlot().getRangeAxis().setLabelFont(font);
		
		return chart;
	}		
}

       观察上面的两个方法getDataset和getChart,其实现方式和前面在Java中使用JFreeChart来画柱状图的实现是一模一样的。仍然是getDataset方法提供饼形图要显示的数据,getChart方法用来设置饼形图的相关信息(如图例的字体,标题的字体等等)。

2:配置struts.xml

struts.xml中的配置和上面画饼图的方式也是一样的,示例代码如下:

 

java代码:
    <package name="helloworld" extends="jfreechart-default">
        <action name="jfreechartAction" class="cn.javass.chart.BarAction">
        	<result type="chart">
        		<param name="width">400</param>
        		<param name="height">300</param>
        	</result>
        </action>
    </package>

3:运行测试一下

       在IE浏览器中输入http://localhost:9080/helloworld/jfreechartAction.action,可以看到结果,如下图所示:

图18.5 使用Struts2与JFreeChart结合画出的柱状图

 

 

私塾在线网站原创《研磨struts2》系列

转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4170.html

欢迎访问http://sishuok.com获取更多内容

相关笔记推荐
精品视频课程推荐

深入浅出学Shrio视频教程
内容概述:Shiro是目前最热门、最易用、功能超强大的Java权限管理框架,强烈推荐,每个项目都必备的权限管理技术!通过本课程,你将从零开始直到彻底掌握Shiro的相关开发知识,达到可以进行实际项目开发的能力。包括:权限管理基础、Shiro入门、配置、身份认证、授权、Realms、Session管理、和Spring的集成、Web、Cache等众多开发细节技术 技术要点:源码级分析Shiro的授权过程、自定义开发Realm、多个Realms的开发配置、自定义开发AuthenticationStrategy、自定义开发自定义SessionDAO、和Struts2+Spring3的集成(包括修正struts2的bug)、Shiro和SpringMVC+Spring3的集成、包装使用其他的Cache框架、缓存数据同步更新的解决方案等等实际开发中常用的内容

struts2防重复提交视频教程
深入浅出的讲解在Struts2开发中,如何防止页面的重复提交

深入浅出学Spring Web MVC视频教程
系统、完整的学习Spring Web MVC开发的知识。包括:Spring Web MVC入门;理解DispatcherServlet;注解式控制器开发详解;数据类型转换;数据格式化;数据验证; 拦截器;对Ajax的支持;文件上传下载;表单标签等内容;最后以一个综合的CRUD带翻页的应用示例来综合所学的知识

struts2验证器框架视频教程
深入浅出的讲解Struts2的验证器框架,包括:预定义验证器和自定义开发验证器

ssh+jbpm项目(某集团OA)视频教程
达到能综合使用Struts2+Spring3+Hibernate3+Jbpm4来进行实际项目开发的能力。 包括:ssh和jbpm的整合;数据字典;通用DAO(Spring+Hibernate+泛型+反射+SpEL+模板方法模式);自动生成UUID的加强版;分层开发、SSH联合的基本开发;翻页的taglib;示范真实值和表现值,数据参照的实现;文件上传下载;主子表操;登录验证码;登录控制的拦截器

浏览(5987)|评论(0)   交流分类:Java|笔记分类: 研磨struts2

评论(0)
请登录后评论 登录

关于我们 | 联系我们 | 用户协议 | 私塾在线服务协议 | 版权声明 | 隐私保护

版权所有 Copyright(C)2009-2012 私塾在线学习网