To send only one response it's a inherent limitation or http, so you
can only send a page, or the excel result or redirect, but not many at
once.
What you can do is put a "downloading page" and from that page use a
script to begin the downloading of the excel data from a different
action.
If you want to show the save data dialog, use the content disponsition header.

Si quieres ser más positivo, pierde un electrón
Miguel Ruiz Velasco S.



On Wed, Jul 30, 2008 at 10:19, Mike Rooney <[EMAIL PROTECTED]> wrote:
> 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]
>
>
>

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

Reply via email to