




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
正题 下面以边帖图片和代码的方式来讲解Struts2与JFreeChart的整合。jFreeChart与Struts2的组合: 一,加入Struts2支持 二,加入struts2-jfreechart-plugin-2.1.6.jar 注意:有的版本的此包有点小问题,此包内有一个struts-plugin.xml内容如下:Xml代码 1 2 3 4 5 6 150 7 200 8 9 10 11 12 若该package没有继承struts-default则需要手动加上extends=struts-default再重新用jdk打包 三,在action中生成我们的图片报表Java代码 13 /* 14 * 生成图形报表 15 * 16 * author 张明学 17 * 18 */ 19 SuppressWarnings(serial) 20 public class ViewResultAction extends ActionSupport 21 22 /* 23 * 这里的JFreeChart的变量名称必须是chart(这是jfreeChart插件不足的地方) 24 */ 25 private JFreeChart chart = null; 26 27 private List interest = null; 28 29 SuppressWarnings(unchecked) 30 Override 31 public String execute() throws Exception 32 ActionContext context = ActionContext.getContext(); 33 Map application = context.getApplication(); 34 35 for (String inter : interest) 36 if (application.get(inter) = null) 37 application.put(inter, 1); 38 else 39 application.put(inter, (Integer) application.get(inter) + 1); 40 41 42 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); 43 dataset.setValue(Integer) application.get(football), , 足球); 44 dataset.setValue(Integer) application.get(volleyball), , 排球); 45 dataset.setValue(Integer) application.get(basketball), , 蓝球); 46 dataset.setValue(Integer) application.get(badminton), , 羽毛球); 47 / 设置标题样式 48 chart = ChartFactory.createBarChart3D(兴趣统计结果, 项目, 结果, dataset, 49 PlotOrientation.VERTICAL, true, false, false); 50 chart.setTitle(new TextTitle(兴趣统计结果, new Font(黑体, Font.BOLD, 22); 51 / 报表中间部分 52 CategoryPlot plot = (CategoryPlot) chart.getPlot(); 53 / 设置水平方向的样式 54 CategoryAxis categoryAxis = plot.getDomainAxis(); 55 categoryAxis.setLabelFont(new Font(宋体, Font.BOLD, 20); 56 categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); 57 / 设置垂直方向的样式 58 NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis(); 59 numberAxis 60 .setLabelFont(new Font(仿宋, Font.LAYOUT_NO_LIMIT_CONTEXT, 18); 61 / 获得报表下面部分 62 / chart.getLegend(); 63 64 return SUCCESS; 65 66 67 public List getInterest() 68 return interest; 69 70 71 public void setInterest(List interest) 72 erest = interest; 73 74 75 public JFreeChart getChart() 76 return chart; 77 78 79 public void setChart(JFreeChart chart) 80 this.chart = chart; 81 82 83 四,struts.xml中的配置:Xml代码 84 85 86 87 88 89 600 90 800 91 92 93 94 注意:由于在第二步的时候将jfreechart-default包继承了struts-default故这里可以直接继承jfreechart-default 这样做的目地是result的type类型为chart,这个类型在struts-default中没有定义,是jreechart-default中定义的 故我们要引入jfreechart-default包,但又要引入struts-default,因此我们可以让jfreechart-default包继承了struts-default。 而在struts.xml中继承jfreechart-default就可以了!Struts2_16.rar(4.9 MB)描述: jFreeChart与Struts2的组合,将jFreeChart作为显示视图实例下载次数: 439 搭建环境:首先帖一张工程的目录结构以及所需的jar包。注意:如果你不打算自己写ChartResult的话只需要引入struts2-jfreechart-plugin-2.0.6.jar(这个在struts-2.0.6-all.zip可以找到了): 1.依次帖web.xml、struts.xml、perties和struts-jfreechart.xml几个配置文件的代码: web.xml struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* struts.xml pertiesstruts.ui.theme=simple struts-jfreechart.xml 400 300 说明:这里只需要说明下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显示结果如下:补充 以上生成的图片是PNG格式的图片,如果需要自定义图片格式的话(好像只能支持JPG和PNG格式),那么自己写一个ChartResult继承自StrutsResultSupport,见代码: package com.tangjun.struts2.chartresult;import java.io.OutputStream;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import org.apache.struts2.dispatcher.StrutsResultSupport;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import com.opensymphony.xwork2.ActionInvocation;public class ChartResult extends StrutsResultSupport /* * */ private static final long serialVersionUID = 4199494785336139337L; /图片宽度 private int width; /图片高度 private int height; /图片类型 jpg,png private String imageType; Override protected void doExecute(String arg0, ActionInvocation invocation) throws Exception JFreeChart chart =(JFreeChart) invocation.getStack().findValue(chart); HttpServletResponse response = ServletActionContext.getResponse(); OutputStream os = response.getOutputStream(); if(jpeg.equalsIgnoreCase(imageType) | jpg.equalsIgnoreCase(imageType) ChartUtilities.writeChartAsJPEG(os, chart, width, height); else if(png.equalsIgnoreCase(imageType) ChartUtilities.writeChartAsPNG(os, chart, width, height); else ChartUtilities.writeChartAsJPEG(os, chart, width, height); os.flush(); public void setHeight(int height) this.height = height; pub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中级会计考试财务规划实战策略及模拟题集
- 2025年医学领域专家深度解读高级面试预测题
- 园林景观环境美化与景观修复方案
- 肉类加工过程中的质量控制
- 保障性租赁住房项目后期维护方案
- 生猪肉品质量检测方案
- 2025年强化学习环境(含答案与解析)
- 2025年广州市新质生产力发展研判:稳步发展新一代信息技术、智能与新能源汽车、生物医药与健康产业等三大新兴支柱产业(智研咨询发布)
- 新生儿心肺复苏操作流程要点
- 血液中心临床输血管理委员会职责汇编
- 2025年国家统一司法考试真题及答案
- 绿色矿山培训课件
- 纪念抗美援朝队会课件
- 2025-2026学年人教版(2024)小学数学三年级上册(全册)教学设计(附目录P296)
- 2025广东茂名市信宜市供销合作联社招聘基层供销社负责人2人笔试模拟试题及答案解析
- 医院护理人文关怀实践规范专家共识
- 成人反流误吸高危人群全身麻醉管理专家共识(2025版)解读
- 初二体育课程教学计划及实施
- 2025年山东省临沂市、枣庄市、聊城市、菏泽市、济宁市中考语文试题解读
- 浙江省金华市婺城区2024-2025学年七年级上学期语文期中考试试卷(含答案)
- 2025年10月自考00227公司法真题及答案
评论
0/150
提交评论