日期:2014-05-17  浏览次数:20659 次

jfreechart,jsp
我现在做的是关于jfreechart   的   但是遇到很大的麻烦我把JSP   中的数据传到jfreechart中生成图形。不知道怎么实现;最好用servlet   那就最好了   。那位朋友能有这方面的实例啊!!非常感谢啊!

------解决方案--------------------
Step1:
使用数据生成图像Object,如下:
//建立数据集
DefaultCategoryDataset dataSet = new DefaultCategoryDataset();
//向数据集中添加数据
while (rs.next()) {
dataSet.addValue(rs.getDouble("LabItemValue"), "检验结果", DateUtil.formatDate(rs.getDate("LabTime")));
}

//创建图像,这里是3D折线
JFreeChart chart = ChartFactory.createLineChart3D(labItemName
+ "曲线", "检验日期", "检验结果(" + suffix + ")", dataSet,
PlotOrientation.VERTICAL, true, true, true);

//设置图像的各个属性
CategoryPlot plot = chart.getCategoryPlot();

//背景色
plot.setBackgroundPaint(Color.GREEN);

//显示网格线及其颜色颜色
plot.setDomainGridlinesVisible(true);
plot.setDomainGridlinePaint(Color.BLUE);

plot.setRangeGridlinesVisible(true);
plot.setRangeGridlinePaint(Color.BLUE);

//前景透明度
plot.setForegroundAlpha(0.7f);
//没有数据时的提示信息
plot.setNoDataMessage("没有要显示的数据");

step2:
使用JFreeChart的ServletUtilities将图像对象保存到Session中
String filename = ServletUtilities.saveChartAsPNG(chart, 600, 343, request.getSession(true));

step3:
在页面使用DisplayChart显示图像,语法如下:
<img src="<%=request.getContextPath() %>/DisplayChart?filename=<%=(String)request.getAttribute("image") %>" border="0">
DisplayChart是JFreeChart自带的Servlet,需要在web.xml配置:
<servlet>
<servlet-name>DisplayChartServlet</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>DisplayChartServlet</servlet-name>
<url-pattern>/DisplayChart</url-pattern>
</servlet-mapping>