Thank you for the reply.  I know my action can only return one response.  
However I want to avoid saving my file somewhere on the server and would like 
the 'File Download' dialog to appear when the file is ready.  How can I do this 
in struts 2 while still forwarding to a 'status completed' page? Would it be 
possible to store the file data in a session and somehow have the File Download 
dialog show up?  If so I am not sure how to do that.



----- Original Message ----
From: Gabriel Belingueres <[EMAIL PROTECTED]>
To: Struts Users Mailing List <user@struts.apache.org>
Sent: Wednesday, July 30, 2008 3:59:29 AM
Subject: Re: ServletOutputStream

Your action can not generate two responses (if that's what you asking).
If you forward to a 'status completed' page, then you need to save
your excel data somewhere to not loosing it.

2008/7/29 Mike Rooney <[EMAIL PROTECTED]>:
> I created a small webapp that extracts data from a DB, creates an Excel file 
> from that data (using Apache POI), which then streams the file to the end 
> user's browser.  Everything is working fine, however I have to set the Action 
> class' return type to 'NULL' since I am setting the servlet response type to 
> 'application/vnd-ms-excel'.  I want to change my application so that it 
> returns to a 'status completed' page when the extraction is completed. 
> However I cannot do this when I set the return type is null.  How can I do 
> this?
>
> Here is my code...
>
> public class ExtractAction extends ActionSupport {
>  public String execute() throws Exception {
>    HSSFWorkbook wb = new HSSFWorkbook();
>    HSSFSheet prodSheet = wb.createSheet("PROD");
>    HSSFSheet devSheet = wb.createSheet("DEV");
>    HSSFSheet testSheet = wb.createSheet("TEST");
>    ...
>    HttpServletResponse response = ServletActionContext.getResponse();
>    response.setContentType("application/vnd.ms-excel");
>    ServletOutputStream outstream = response.getOutputStream();
>    wb.write(outstream);
>    outstream.flush();
>    response.flushBuffer();
>  }
>  return null;
>  //return SUCCESS
> }
>
> and my struts.xml
>
> <struts>
>
>  <constant name="struts.enable.DynamicMethodInvocation" value="false" />
>  <constant name="struts.devMode" value="false" />
>
>  <package name="default" extends="struts-default">
>    <action name="Extractor" class="action.ExtractAction">
>      <result name="success">/example/index.jsp</result>
>    </action>
>  </package>
>
> </struts>
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


      

Reply via email to