Ganesh, have you filed an issue on their bug tracker ?
-M On Tue, Apr 21, 2009 at 9:10 AM, Ganesh <[email protected]> wrote: > Hi, > > When developing the AJAX part of MyFaces 2.0 we encountered 2 locations > within the jsdoc part of the spec we'd propose for enhancement. > > The first is about the hidden inputs for view state: The jsdocs for > jsf.ajax.response imply that each hidden input receives the id > "javax.faces.ViewState" which would result in multiple hidden inputs with > this id in a multi form document. This is how Mojarra is currently working > things out, but other implementations should get a chance to use a w3c > conformant approach - the hidden inputs don't need ids at all, but only > name=javax.faces.ViewState. A comment on this was already posted by Werner > Punz. > > The second is about replacing the body section of a document if the server > sends the id javax.faces.ViewRoot: The jsdocs for jsf.ajax.response say that > the impl should >>extract the contents of the <body> element from the > <update> element's CDATA content and replace the document's <body> section > with this contents<<. According to this the attributes of the body element > wouldn't be replaced with the new attributes, which probably isn't the > intended behaviour. Preserving the attributes can either be achieved by > copying them or by using contextualRagen/adjacentHTML instead of innerHTML. > > Here is a proposal for changing the jsdocs for jsf.ajax.response to enable > both enhancements mentioned above - please correct the jsdoc for <static> > jsf.ajax.response(request, context) > like this: > > If an update element is found in the response with the identifier > javax.faces.ViewRoot: > > <update id="javax.faces.ViewRoot"> > <![CDATA[...]]> > </update> > > Update the entire DOM as follows: > > * Extract the CDATA content and trim the <html> and </html> from the > CDATA content if it is present. > > <<<<<<< (remove the following lines) > > * If the CDATA content contains a <head> element, and the document has a > <head> section, extract the contents of the <head> element from the <update> > element's CDATA content and replace the document's <head> section with this > contents. > * If the CDATA content contains a <body> element, and the document has a > <body> section, extract the contents of the <body> element from the <update> > element's CDATA content and replace the document's <body> section with this > contents. > > ======= (add the following lines) > > * If the CDATA content contains a <head> element, and the document has a > <head> section, replace the document's <head> section with the <head> > section contained within the CDATA content. > * If the CDATA content contains a <body> element, and the document has a > <body> section, replace the document's <body> section with the <body> > section contained within the CDATA content. > >>>>>>>> > > * If the CDATA content does not contain a <body> element, replace the > document's <body> section with the CDATA contents. > > If an update element is found in the response with the identifier > javax.faces.ViewState: > > <update id="javax.faces.ViewState"> > <![CDATA[...]]> > </update> > > Include this state in the document as follows: > > * Extract this <update> element's CDATA contents from the response. > > <<<<<< (remove the following lines) > > * If the document contains an element with the identifier > javax.faces.ViewState replace its contents with the CDATA > contents. > * For each <form> element in the document: > o If the <form> element contains an <input> element with > the identifier javax.faces.ViewState, replace the > <input> element contents with the <update> element's > CDATA contents. > o If the <form> element does not contain an element with the > identifier javax.faces.ViewState, create an <input> > element of the type hidden, with the identifier > javax.faces.ViewState, set its contents to the <update> > element's CDATA contents, and add the <input> element as > a child to the <form> element. > > ======= (add the following lines) > > * Set the value of all elements within the document with the name > javax.faces.ViewState to the CDATA contents > * Perform the following optionally, implementations my omit this to > enhance performance, as it enforces a search within the DOM tree. For each > <form> element in the document: > o If the <form> element does not contain an element with the > name javax.faces.ViewState, create an <input> element of > the type hidden, with the name javax.faces.ViewState, > set its value to the <update> element's CDATA contents, > and add the <input> element as a child to the <form> > element. > >>>>>>>> > > Best Regards, > Ganesh Jung > > > > -- Matthias Wessendorf blog: http://matthiaswessendorf.wordpress.com/ sessions: http://www.slideshare.net/mwessendorf twitter: http://twitter.com/mwessendorf
