今天用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了
分享到:
相关推荐
在Java Web开发中,"getOutputStream() has already been called for this response" 是一个常见的错误,通常出现在使用Servlet或JSP时。这个错误意味着在HTTP响应中,`getOutputStream()`已经被调用,然后尝试再次...
在使用Tomcat 6服务器部署和运行Java Server Pages (JSP) 时,可能会遇到一个特定的异常:“getOutputStream() has already been called for this response”。该异常发生在尝试向响应对象中写入数据时,已经调用了...
纠结了半天的 java.lang.IllegalStateException: getOutputStream() has already。这个问题困扰了半天,在网上查阅了大量资料 出这个错误一般就是下面2个.....
验证码出现getOutputStream() has already been called for this response错误解决
解决了getOutputStream() has already been called for this response. 并将产生验证码的逻辑从JSP页面中分离出来,单独写了一个类 便于重用。
Returns a boolean indicating whether the named response header has already been set. contextDestroyed(ServletContextEvent) - Method in interface javax.servlet.ServletContextListener Notification ...