闲话不多说,直接奔主题吧!1. 下载jfreechart,我用的是1.0.13版本,解压后将jfreechart-1.0.13.jar、jcommon-1.0.16.jar两个jar包加入项目的classpath,这里有个小问题,就是如果项目用使用了spring,gnujaxp.jar这个包会带来冲突,所以不需要将它也加入项目中。
2.配置。在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>/chartServlet/DisplayChart</url-pattern>
</servlet-mapping>
3.在backingbean中创建画图方法drawChart(HttpSession session)
/**
* 画趋势图
*
* @param session
* @return
* @author 成溪先生
* @throws Exception
* @createTime 2010-1-4
*/
public String drawChart(HttpSession session) throws Exception{
//fileName用于记录生成的图片保存的路径
String fileName ="";
//title标题
StringBuffer title = new StringBuffer();
//格式
Font titlefont = new Font("宋体",Font.BOLD,16);//标题
Font xfont = new Font("宋体",Font.PLAIN,12) ;// X轴
Font yfont = new Font("宋体",Font.PLAIN,12) ;// Y轴
Font kfont = new Font("宋体",Font.PLAIN,12) ;// 底部
title.append("标题");
//数据集
CategoryDataset dataset = getDataSet();
//创建图表
JFreeChart chart = ChartFactory.createLineChart(title.toString(),
"日期", // 目录轴的显示标签
"结果", // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
chart.getTitle().setFont(titlefont);
CategoryPlot plot = chart.getCategoryPlot();// 图形的绘制结构对象
//x轴
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setLabelFont(xfont);
domainAxis.setTickLabelFont(xfont);
//调整方向
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
//y轴
ValueAxis valueAxis = plot.getRangeAxis();
valueAxis.setLabelFont(yfont);
valueAxis.setTickLabelFont(yfont);
chart.getLegend().setItemFont(kfont);
//让字体清晰
chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
LineAndShapeRenderer lineShapeRenderer = (LineAndShapeRenderer)plot.getRenderer();
lineShapeRenderer.setBaseShapesVisible(true);
lineShapeRenderer.setBaseLinesVisible(true);
FileOutputStream outStream = null;
try {
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
fileName = "/chartServlet/DisplayChart?filename=";
fileName += ServletUtilities.saveChartAsPNG(chart, 800, 350, info, session);
/*
//ieTemp 是ie在系统中临时目录,可以将图片暂存到该目录下
outStream = new FileOutputStream(getIeTemp());
ChartUtilities.writeChartAsPNG(outStream, chart, 800, 500);
*/
} catch (Exception e) {
log.error(e, e);
}finally{
try {
outStream.close();
} catch (Exception e) {
log.error(e, e);
e.printStackTrace();
}
}
this.setFileName(fileName);
return fileName;
}
/**
* 计算图表的数据集
*
* @return
* @author 成溪先生
* @createTime 2010-1-4
*/
private CategoryDataset getDataSet(){
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
...
dataset.addValue(Number value, Comparable rowKey, Comparable columnKey);
return dataset;
}
4. 后台已经将图生成,页面只需找到该图就可以显示了,看代码:
<h:graphicImage alt="jfreechart折线图" url="#{backingBean.fileName}"></h:graphicImage>
5.运行 ok! 本例只完成了带数据点折线图,其他的类似,可以推敲之。
分享到:
相关推荐
**JSF(JavaServer Faces)** 是Java平台上的一种用于构建用户界面的Web应用程序框架,它简化了开发人员创建和管理动态Web用户界面的过程。JSF提供了组件库、事件处理机制和生命周期管理,允许开发者通过声明式的...
JSF(JavaServer Faces)和Spring是两种在Java Web开发中广泛使用的框架。JSF主要用于构建用户界面,而Spring则提供了全面的企业级应用框架服务,包括依赖注入、事务管理、安全性和AOP(面向切面编程)。将两者整合...
4. **整合Hibernate与JSF**:创建一个Managed Bean 来处理登录逻辑,该Bean 将使用Hibernate API 连接数据库,执行查询和更新操作。Managed Bean 可以直接在JSF 页面中使用,通过EL 表达式绑定到组件。 5. **使用...
细说如何整合spring+hibernate +jsf,细说如何整合spring+hibernate +jsf,细说如何整合spring+hibernate +jsf,细说如何整合spring+hibernate +jsf,细说如何整合spring+hibernate +jsf,
AJAX、JSF和EJB的整合主要体现在以下方面: 1. **前端交互增强**:通过AJAX,JSF的用户界面可以实现动态更新,无需每次操作都重新加载整个页面。例如,用户填写表单时,可以使用AJAX实时验证输入的有效性,而无需...
JSF 结构JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。它提供了一种以组件为中心的用户界面(UI)构建方法,从而简化了Java服务器端应用程序的开发。由于由Java ...
**JSF 1.2 和 Hibernate 整合详解** JavaServer Faces (JSF) 是一个用于构建用户界面的 Java 框架,而 Hibernate 是一个流行的面向对象持久化框架,用于处理 Java 应用程序与数据库之间的交互。将 JSF 1.2 与 ...
**JavaServer Faces 2.0 (JSF 2.0) 和 Spring 框架的整合教程** 在当今的企业级Web开发中,JSF 2.0 和 Spring 的结合使用非常常见,因为它们各自提供了独特的优势。JSF 是一个用于构建用户界面的组件模型框架,而 ...
通过整合JSF、Spring和Hibernate,我们不仅能够构建出一个清晰、高效的多层架构系统,还能够充分利用每个框架的优势来提高系统的性能和稳定性。在实际开发过程中,还需要注意合理地设计各个层次之间的交互逻辑,确保...
在JavaServer Faces (JSF) 2.0中整合RichFaces 4.2.3框架,需要对两者的核心概念和整合过程有深入的理解。RichFaces是一个功能强大的UI组件库,它扩展了JSF的功能,提供了丰富的AJAX支持、皮肤化以及组件集。以下是...
整合这些框架通常涉及配置XML文件(如web.xml、faces-config.xml、spring配置文件),设置bean的依赖关系,编写适配器类以连接各个组件,以及调整JSF页面以使用Spring Security的标签库。开发者还需要熟悉各框架的...
首先,我们需要理解JSF2和Spring3整合的核心目标:将JSF的视图层与Spring的业务逻辑层结合起来。通过这种方式,我们可以利用JSF的组件化界面和事件处理,以及Spring的灵活依赖注入和事务管理。 1. **配置Spring ...
合理设置作用范围有助于优化内存使用和提升应用性能。 ##### 4.5 注入Managed Bean 在JSF中,可以通过依赖注入的方式将Managed Bean注入到其他Bean或组件中。这种方式简化了代码结构,提高了代码的可读性和可维护...
3. **DWR与JSF的整合**:整合DWR和JSF,可以让JSF应用利用DWR的Ajax能力。首先,需要在JSF项目中添加DWR的依赖,包括dwr-engine.jar、dwr-server.jar等。接着,配置DWR的`dwr.xml`文件,声明要暴露给JavaScript的...
整合Hibernate和JSF可以提供一个完整的解决方案,从数据层到表现层都有一套统一的机制。这不仅简化了开发,还使得代码更易于理解和维护。在实际项目中,还可以结合其他技术,如CDI(Contexts and Dependency ...
此外,为了调试和测试,开发者通常会创建一些示例页面和测试用例,验证JSF、Spring和Hibernate的整合是否正确。例如,创建一个简单的CRUD(创建、读取、更新、删除)应用程序,展示如何通过JSF界面操作由Spring管理...