You're right, the second post is the problem. If you do not have the dire
need for a commandlink (I didn't) I would say use command button.



Cagatay Civici wrote:
> 
> Does it only happen for the second post after you export the excel? Or it
> happens without exporting at all?
> 
> Seems commandLink is decoded and event is queued again.
> 
> On Tue, Apr 28, 2009 at 5:31 PM, sreekrbs <[email protected]> wrote:
> 
>>
>> Very simple solution. Use a command button with image.
>>
>> JSF Code
>> <h:commandButton value="Download"  styleClass="button"
>> actionListener="#{employeeList.downloadListener}"
>> image="/images/excel_icon.gif" />
>>
>> Generated HTML
>> <input id="employees:j_id13" name="employees:j_id13"
>>                                type="image"
>> src="/testapp/images/excel_icon.gif"
>>                                onclick="if(typeof
>>
>> window.clearFormHiddenParams_employees=='function'){clearFormHiddenParams_employees('employees');}"
>>                                class="button" />
>>
>>
>>
>>
>>
>> mjovanov wrote:
>> >
>> > We have a very simple setup for exporting data table content to excel:
>> a
>> > commandLink invoking an action method that renders content type
>> > "application/vnd.ms-excel". However we are seeing some really funky
>> > behavior, specifically whenever actions other than exporting to excel
>> are
>> > invoked, the exportHtmlTableToExcel action method still gets executed
>> > during JSF lifecycle, causing the browser to display the Download/Open
>> > dialog box again! Using the debugger I can see the
>> exportHtmlTableToExcel
>> > getting invoked even though it should not be. It's as if the JSF state
>> > somehow got corrupt and/or was not properly reset from the previous
>> cycle
>> > involving Exporting to Excel. Has anyone seen this before? Any
>> suggestions
>> > would be greatly appreciated.
>> >
>> > code:
>> > <h:commandLink action="#{backingBean.exportHtmlTableToExcel}"
>> > class="linkCaption">
>> >   <t:graphicImage url="images/icon_excel.gif"
>> > alt="#{msg.labelExportQueueSummToExcel}" width="21" height="16" />
>> >   <h:outputText value="#{msg.labelExportToExcel}" />
>> > </h:commandLink>
>> >
>> > public void exportHtmlTableToExcel() throws IOException {
>> >     String contentType = "application/vnd.ms-excel";
>> >     FacesContext fc = FacesContext.getCurrentInstance();
>> >     String filename =
>> fc.getExternalContext().getUserPrincipal().getName()
>> > + "-" + System.currentTimeMillis()
>> >             + ".xls";
>> >     HttpServletResponse response = (HttpServletResponse)
>> > fc.getExternalContext().getResponse();
>> >     response.setHeader("Content-disposition", "attachment; filename=" +
>> > filename);
>> >     response.setContentType(contentType);
>> >
>> >     StringBuffer htmlBuffer = new StringBuffer();
>> >     ...
>> >     [write data table content to buffer here]
>> >     ...
>> >     ...
>> >     PrintWriter out = response.getWriter();
>> >     htmlBuffer.append("<HTML>\n");
>> >     out.print(htmlBuffer);
>> >     out.close();
>> >     fc.responseComplete();
>> > }
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Export-Data-Table-to-Excel---Strange-JSF-Lifecycle-Behavior-%21-tp17831096p23280575.html
>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Export-Data-Table-to-Excel---Strange-JSF-Lifecycle-Behavior-%21-tp17831096p23283598.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.

Reply via email to