2 chenyang 494 chenyang_494 于 2014.05.19 18:29 提问

使用JFreeChart产生图片 后台报错!!!!在线等解答

因为框架不让修改web.xml文件,故让src等于后台路径,跪求好的实现方法!!!!还有就是后台报错:java.lang.IllegalStateException: getOutputStream() has already been called for this response,虽然搜了网上解决办法,说是jsp使用对象会调用response.getWriter(),因为这个方法是和response.getOutputStream()相冲突的,所以才会报此错误,但是是我这部分代码的实现是放在后台实现应该怎么修改呢??

详细代码展示如下:
页面部分:

js部分:
var para = "&width=" + 500 + "&height=" + 300 + "&dataString="+dataset;
var jspUrl = '<%=request.getContextPath()%>/ChartAction?action=createPieChart'+para;
document.getElementById("dayId").src=jspUrl;
后台代码:

OutputStream out = response.getOutputStream();
try{
DefaultPieDataset data = new DefaultPieDataset();
data.setValue(ruleName,ruleName);
JFreeChart chart = ChartFactory.createPieChart3D("规则分布", data, true,true, false);
chart.setBackgroundPaint(Color.white);
chart.setBorderVisible(false);
//获得3D的水晶饼图对象
PiePlot3D pieplot3d = (PiePlot3D) chart.getPlot();
//设置开始角度
pieplot3d.setStartAngle(100D);
//设置方向为”顺时针方向“
pieplot3d.setDirection(Rotation.CLOCKWISE);
//设置透明度,0.5F为半透明,1为不透明,0为全透明
pieplot3d.setForegroundAlpha(1);
pieplot3d.setNoDataMessage("No date");
ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,width, height);
}catch (Exception e) {
log.error("..................");
}finally {
out.close();
}

Csdn user default icon
上传中...
上传图片
插入图片