Possible,
long time ago, I dealt w/ that last time :-)
Yours looks much more detailed. Interested in providing a nice how-to
for the wiki ?

Thx,
Matthias

On 3/27/07, William Hoover <[EMAIL PROTECTED]> wrote:
Matthias,

I have been struggling with the same problem when streaming files for download. 
I have tried the solution described below, but I still recieve an 
java.lang.IllegalStateException- even when calling 
FacesContext.getCurrentInstance().responseComplete(). This also breaks all of 
the links/buttons on the page.

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of
Matthias Wessendorf
Sent: Tuesday, March 27, 2007 4:48 AM
To: [email protected]
Subject: Re: Providing Files / Streams as download-link with trinidad?


Hello Jochen,

I've worked with Apache FOP for creating pdfs. iText or
JasperReports are also lib that help you on that task.

inside of your backing bean method (referenced by a commandLink or
cmdButton) you can do somthing like this:

public String pdf() {

  FacesContext ctx = FacesContext.getCurrentInstance();

  if(!ctx.getResponseComplete()) {


      HttpServletResponse response = (HttpServletResponse)
ctx.getExternalContext().getResponse();

      byte[] file = //do some FOP, or ... stuff;

      response.setContentType("application/pdf");
      response.setHeader("Content-Disposition", "inline;
filename=\"foo.pdf\"");
      response.setContentLength(file.length);

      OutputStream out = response.getOutputStream();
      out.write(file, 0, file.length);
      out.flush();
      out.close();

      ctx.responseComplete();

  return null;
 }


This will work in p(l)ain servlet or struts world too (expect of the
usage of jsf api (like FacesContext))

However, the *magic* here is the responseComplete()
<from_java_doc>
Signal the JavaServer Faces implementation that the HTTP response for
this request has already been generated (such as an HTTP redirect),
and that the request processing lifecycle should be terminated as soon
as the current phase is completed.
</from_java_doc>

and yes... it's getResponseComplete() instead of isResponseComplete()

HTH,
Matthias

On 3/27/07, Jochen Traunecker <[EMAIL PROTECTED]> wrote:
> Hello everybody,
>
> I'm just wondering if there is some Trinidad-specific / Faces-specific way to 
serve binary downloads, like PDFs stored in a database. Or do I have to provide 
some link to a non managed servlet?
>
> Thanks,
> Jochen
>
>
>
>
>
> ___________________________________________________________
> Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de
>


--
Matthias Wessendorf
http://tinyurl.com/fmywh

further stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com




--
Matthias Wessendorf
http://tinyurl.com/fmywh

further stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com

Reply via email to