getOutputStream() has already been called

今天用struts做jxl导出为excel文件时,报出个异常,但是文件还是导出成功了.百思不得其解,就google了下,找到了一下两种方式:

1.

out.clear();
out = pageContext.pushBody();

 
在使用完输出流后加上这样两句,但是我用的是以下方式:

 	jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(response.getOutputStream());
        	jxl.write.WritableSheet ws = wwb.createSheet(sheetName, 0);

        	//xls 格式
        	jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL,
                10, WritableFont.NO_BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE,
                jxl.format.Colour.BLACK);
        	jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);

        	//xls 格式
        	jxl.write.WritableFont ww = new jxl.write.WritableFont(WritableFont.TAHOMA, 11, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE);
        	jxl.write.WritableCellFormat wwf = new jxl.write.WritableCellFormat(ww);
        	List<String> list = new ArrayList<String>();    //title

 

根本的得不到out对象,问题的关键是out对象调用的response.getWriter()和response.getOutputStream()相冲突

2.最简单的一个解决办法不要返回ActionForward对象,return null就ok了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值