Put this before responseComplete to fix things up.
context.getApplication().getStateManager().saveSerializedView(context);
On 12/19/05, Mike Kienenberger <[EMAIL PROTECTED]
> wrote:
On 12/19/05, Anu Padki <[EMAIL PROTECTED]> wrote:
> Is it not possible to download a file using action method?
> Do we have to write a servlet?
Nope. Here's how I do it.
public String downloadContentData()
{
Content selectedContent =
(Content)this.announcementContentDataList.getRowData();
FacesContext facesContext = FacesContext.getCurrentInstance ();
try
{
OutputStream responseStream =
((HttpServletResponse)facesContext.getExternalContext().getResponse()).getOutputStream();
HttpServletResponse response =
(HttpServletResponse)facesContext.getExternalContext().getResponse();
response.setContentType(selectedContent.getContentType());
response.setHeader("Content-Disposition","attachment;filename=\""
+ selectedContent.getContentId() + "\"");
response.setContentLength(selectedContent.getContentData().getData().length);
responseStream.write(selectedContent.getContentData ().getData());
response.flushBuffer();
}
catch (IOException exception)
{
// TODO Auto-generated catch block
exception.printStackTrace();
}
facesContext.responseComplete();
return "downloadContentData";
}