用Struts2+S+H 开发项目,用poi包,做导出至Excel工打开或保存。现在在Action中已经写好了,这个
response.setContentType("application/vnd.ms-excel;charset=GBK");
response.setHeader("Content-Disposition",
"attachment;Filename=message.xls");应当是没错的。我Tomcat在本机,数据库服务器是另外一台机子(同一IP段),现在部署后启动Tomcat,运行项目,导出是可以看见那个提示档案下载的窗口(打开、保存、取消),但当我点击打开是,闪一下并没有打开Excel文件,当我点击保存时,也是的闪一下并没有要我保存到哪里的对话框,然后也什么都没了,那我那文件跑哪去了呢,有谁知道这是怎么回事不?

解决方案 »

  1.   

    还是看LOG信息吧楼主
    一下说不清楚
      

  2.   

    2009 七月 30 15:05:19 ERROR (ClosingUIBean.java:60) - Could not open template
    java.lang.IllegalStateException: getOutputStream() has already been called for this response
    at org.apache.catalina.connector.Response.getWriter(Response.java:607)
    at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:196)
    at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:112)
    at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)
    at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118)
    at org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:173)…………
    好像是说
    getOutputStream方法的问题,但是我这样用怎么就有问题了呢?
      

  3.   

     现在又是这个了:
    2009 七月 30 15:43:32 ERROR (ApplicationDispatcher.java:711) - Servlet.service() for servlet jsp threw exception
    java.lang.IllegalStateException: getOutputStream() has already been called for this response
      

  4.   

    out.clear();
    out = pageContext.pushBody();
    =================================
    用一下试试。
      

  5.   

    跑到你服 務器上去了,建義你改變下你的保存路徑設為真路徑
    String url = request.getSession().getServletContext().getRealPath("/");
    String url1 = url + "/a.xls";