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
