2013-04-02 44 views
0

我正在创建一个工作簿并尝试下载它。我面临的问题是当我使用workbook.write(outputstream)时,似乎outputstream和printwriter都不能一起工作,这就为我创建了一个已经提交的响应异常。您能否让我知道我们是否有任何方法使用printwriter编写此代码,因此我将从响应已提交的异常中走出来。我们可以在Apache poi工作表中使用printwriter

pRes.setContentType(MS_EXCEL); pRes.setHeader(CONTENT,FILENAME);

 outputStream = pRes.getOutputStream(); 
     workbook.write(outputStream); 

我收到的例外是,

java.lang.IllegalStateException:getOutputStream方法()已经被调用,这种响应 在org.apache.catalina.connector.Response.getWriter(响应。的java:619) 在org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198) 在org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125) 在org.apache。 jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118) at org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.ja va:173)

+0

任何人有任何想法呢? – Adam

+0

你为什么首先创作作家? – Gagravarr

回答

0

由于您是从jsp调用的,因此您需要将此<%@ page trimDirectiveWhitespaces="true" %>添加到页面以停止空白与您的输出流混淆。

+0

我不是从jsp调用,我是在servlet内部执行此操作并从jsp调用servlet。 – Adam

+0

是的,这就是我的意思...你是否至少在jsp上试过它? – Reimius

相关问题