Hi, This is a good explanation. Is it possible for you to test a JSP version? To be honest, I'm a bit flabbergasted to see something like that happen in Facelet. Can you check the state of the component's children within the formSubmitted method?
~ Simon On Tue, Oct 27, 2009 at 11:43 AM, <[email protected]> wrote: > > OK. Here is a highly simplified case of the problem (source included): > > The custom component 'repeat' will simply iterate through its children and > renders them. > > *Usage:* > > <netx:repeat binding="#{testBean.htmlRepeat}"> > <h:outputText value=*"Child-1"*/> > <h:outputText value=*"Child-2"*/> > </netx:repeat> > > > *Renderer output:* > > [begin - Child-1Child-2 - end] > > > *BackingBean:* > > The repeat component is bounded to a backing bean like so: > > *public* *class* TestBean { > > *private* HtmlRepeat htmlRepeat; > > *public* HtmlRepeat getHtmlRepeat() { > *return* *null*; > } > > *public* *void* setHtmlRepeat(HtmlRepeat htmlRepeat) { > *this*.htmlRepeat = htmlRepeat; > } > > // -- action method > *public* String formSubmitted() { > System.*out*.println("formSubmitted()"); > > HtmlOutputText child = *new* HtmlOutputText(); > child.setValue("Child-3"); > htmlRepeat.getChildren().add(child); > > *return* *null*; > } > } > > and the form is submitted using <*h:commandButton* value=*"Submit"* action > ="#{testBean.formSubmitted}"/> > > The formSubmitted() method simply adds a child to htmlRepeat like so > htmlRepeat.getChildren().add(child). Note that the child is added as the > last child to the children list. But when the response is renderered, the > newly added child appears at the beginning. > > *Expected Output:* > * * [begin - Child-1Child-2Child-3 - end] > > *Actual Output:* > * * [begin - Child-3Child-1Child-2 - end] > > *Attachments:* > > 1. jsf-repeat.jar - Deployable JSF component packaged as jar (contains > .java files, faces-config.xml and facelet taglib for the custom component). > > Download >> http://keerthi.linux.googlepages.com/jsf-repeat.jar > > 2. TestRepeat.xhtml - Facelet view using the <netx:repeat/> custom > component > > Download >> http://keerthi.linux.googlepages.com/TestRepeat.xhtml > > *Note:* The component requires facelets and so no TLD has been defined. > Tested on myfaces1.2.6/Tomcat 6.20 > >
