It's more than just the dummy form;  it's also the auto-scroll Javascript, etc.

-- Adam Winer

On Mon, 28 Mar 2005 17:32:57 -0600, Heath Borders
<[EMAIL PROTECTED]> wrote:
> I agree with removing the dummyform code from the
> responsewriter.endDocument() method.  I would say we could output the
> dummy form whenever a UICommand stops being rendererd if it doesn't
> have a parent form.  We could check this with the component instance
> we receive in the startElement() method.  Just run up the tree to see
> if a parent form exists, and render the dummy form as necessary.
> 
> 
> On Mon, 28 Mar 2005 14:54:51 -0800, Adam Winer <[EMAIL PROTECTED]> wrote:
> > First off, hello. ;)
> >
> > To introduce myself, name's Adam Winer: long standing member of the
> > JSF EG(actually, essentially the only member still standing from the
> > original JSF kickoff meeting), and currently the architect of Oracle's
> > ADF Faces.
> >
> > I've been shown some problems lately with MyFaces 1.0.9 and ADF Faces.
> >  The problems specifically trace to MyFaces's use of
> > ResponseWriter.endDocument() to output Javascript.  Since ADF Faces
> > runs with its own RenderKit (and therefore its own ResponseWriter),
> > this Javascript is getting dropped and not written.
> >
> > I'd recommend (both as JSF EG guy and ADF Faces guy) that this MyFaces
> > code be moved *out* of ResponseWriter.endDocument().  Specifically:
> >
> > - ResponseWriter.endDocument() is not guaranteed to be called before
> > the close of <body> or even the close of <html>, and therefore this
> > script cannot be safely output at this point.  It's quite likely that
> > changes in JSF 1.2 will essentially guarantee that endDocument() is
> > not called until the close of all output.
> > - This is not really the intent of ResponseWriter.endDocument().  In
> > HTML, it should be a no-op.  It's there for more bizarre scenarios
> > like a ResponseWriter outputting a SOAP envelope around a response.
> > - It's breaking ADF Faces. :)
> >
> > A significantly cleaner way to output needed Javascript is to add it
> > as needed from the Renderers that require it (using a request-scoped
> > attribute to track if its been added already).
> >
> > BTW, glancing through the ResponseWriter code, some ideas for other
> > improvements:
> >
> > - Refactor the ResponseWriter to use a separate instance for HTML and
> > XHTML (e.g, output <br> in HTML but <br/> in XHTML - take advantage of
> > this abstraction!)
> > - The line of code that reads:
> > String strValue = value.toString(); //TODO: Use converter for value
> > .. well, no:  Converters are not applicable here.
> > - Remove any code that tries to output <!-- --> around Javascript, and
> > move that functionality into ResponseWriter.startElement("script") and
> > ResponseWriter.endElement("script") so it can be globally enabled and
> > disabled if needed.
> >
> > Thanks,
> > Adam Winer
> > [EMAIL PROTECTED]
> >
> 
> --
> -Heath Borders-Wing
> [EMAIL PROTECTED]
>

Reply via email to