Hi, why would you expect a not submited subform should loose changes made on the client (the submitted value)?
This is exact the behavior i would expect. And BTW how the tobago subform works. Regards, Volker 2008/9/10 Andrew Robinson <[EMAIL PROTECTED]>: > Okay, I know the problem: > > The Subform allows the decode phase of all the children, regardless of > what was clicked on. If an event was queued inside of the subform, but > not during the apply phase, the form is considered "submitted". Only > the submitted form will be validated & updated. > > Now, UIXInput (and UIInput) render the submitted value as the current > value if it is set. Therefore: > > 1) subform 1 is submitted > 2) subform 1 & 2 are decoded, storing the submitted value ("" for the > inputText in the 2nd subform) > 3) subform 1 is validated > 4) subform 1 is updated > 5) render subform 1, inputText renders the "value" attribute > 6) render subform 2, inputText renders the "submittedValue" attribute > (blank string - "") > > So to me this looks like a design flaw of the subform component. IMO, > I would file a bug. Fixing it based on looking at the current design > could be a pain in the rear. I wonder how the Tomahawk subform handles > the same situation? > > As a workaround, you would have to find all components under > non-submitted subforms that implement EditableValueHolder and set > their submitted value to null. > > -Andrew > > On Wed, Sep 10, 2008 at 8:03 AM, Walter Mourão <[EMAIL PROTECTED]> wrote: >> Actually it looks like the issue isn't related with PPR. I just tested >> without PPR (see code below) and had the same result: >> >> <?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?> >> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" >> xmlns:f="http://java.sun.com/jsf/core" >> xmlns:tr="http://myfaces.apache.org/trinidad" > >> <jsp:directive.page contentType="text/html;charset=utf-8"/> >> <f:view> >> <tr:document title="Apache Trinidad Blank Demo"> >> <tr:form> >> <tr:subform id="sub1"> >> <tr:panelPage> >> <tr:outputText value="#{helloWorldBacking.name}" /> >> <tr:inputText label="Your name" id="input1" >> value="#{helloWorldBacking.name}" required="true"/> >> <tr:commandButton id="button1" text="press me" >> action="#{helloWorldBacking.send}"/> >> </tr:panelPage> >> </tr:subform> >> <tr:subform id="sub2"> >> <tr:panelPage> >> <tr:outputText value="#{helloWorldBacking.name}" /> >> <tr:inputText label="Your name" id="input1" >> value="#{helloWorldBacking.name}" required="true"/> >> <tr:commandButton id="button1" text="press me" >> action="#{helloWorldBacking.send}"/> >> </tr:panelPage> >> </tr:subform> >> </tr:form> >> </tr:document> >> </f:view> >> </jsp:root> >> >> >> Walter Mourão >> http://waltermourao.com.br >> http://arcadian.com.br >> http://oriens.com.br >> >> >> >> On Wed, Sep 10, 2008 at 10:13 AM, Andrew Robinson >> <[EMAIL PROTECTED]> wrote: >>> >>> Looks like you need to add partialTriggers to the components you want >>> to update / refresh >>> >>> -A >>> >>> On Wed, Sep 10, 2008 at 4:50 AM, Walter Mourão <[EMAIL PROTECTED]> >>> wrote: >>> > Sorry the bump, but I'm in a dead end... Does anybody know a workaround >>> > ? >>> > >>> > >>> > Walter Mourão >>> > http://waltermourao.com.br >>> > http://arcadian.com.br >>> > http://oriens.com.br >>> > >>> > >>> > >>> > On Sun, Sep 7, 2008 at 8:22 AM, Walter Mourão <[EMAIL PROTECTED]> >>> > wrote: >>> >> >>> >> Hi folks, >>> >> I'm dealing with a strange behavior when using subforms and I >>> >> reproduced >>> >> it using the trinidad-blank example (from 1.0.9, but I found the >>> >> problem >>> >> first with 1.0.5). >>> >> When executing an action from subform 1, only the inputs of the subform >>> >> 1 >>> >> are refreshed and show the new value. Besides that, when I added a >>> >> tr:outputText to the subform, pointing to the same backing bean >>> >> property, it >>> >> shows the new value, so the tr:inputText and tr:outputText (of the >>> >> subform >>> >> 2) shows differente values... >>> >> >>> >> To reproduce using the trinidad-blank example: >>> >> 1 - change HelloWorldBacking.send to: >>> >> public String send() >>> >> { >>> >> _name = _name.toUpperCase(); >>> >> >>> >> return null; >>> >> } >>> >> >>> >> 2 - add the file two_subforms.jspx with the content: >>> >> <?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?> >>> >> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" >>> >> xmlns:f="http://java.sun.com/jsf/core" >>> >> xmlns:tr="http://myfaces.apache.org/trinidad" > >>> >> <jsp:directive.page contentType="text/html;charset=utf-8"/> >>> >> <f:view> >>> >> <tr:document title="Apache Trinidad Blank Demo"> >>> >> <tr:form partialTriggers="sub1:button1 sub2:button1"> >>> >> <tr:subform id="sub1"> >>> >> <tr:panelPage> >>> >> <tr:outputText value="#{helloWorldBacking.name}" /> >>> >> <tr:inputText label="Your name" id="input1" >>> >> value="#{helloWorldBacking.name}" required="true"/> >>> >> <tr:commandButton id="button1" text="press me" >>> >> action="#{helloWorldBacking.send}" partialSubmit="true"/> >>> >> </tr:panelPage> >>> >> </tr:subform> >>> >> <tr:subform id="sub2"> >>> >> <tr:panelPage> >>> >> <tr:outputText value="#{helloWorldBacking.name}" /> >>> >> <tr:inputText label="Your name" id="input1" >>> >> value="#{helloWorldBacking.name}" required="true"/> >>> >> <tr:commandButton id="button1" text="press me" >>> >> action="#{helloWorldBacking.send}" partialSubmit="true"/> >>> >> </tr:panelPage> >>> >> </tr:subform> >>> >> </tr:form> >>> >> </tr:document> >>> >> </f:view> >>> >> </jsp:root> >>> >> >>> >> 3 - start the application, go to /faces/two_subforms.jspx, add a text >>> >> in >>> >> one of the inputs and click "press me". >>> >> >>> >> This behavior happens with partialSubmit="false" too. >>> >> >>> >> Please confirm if it is a bug (and I file a jira issue) and if it has >>> >> an >>> >> workaround. >>> >> >>> >> Thanks in advance, >>> >> >>> >> >>> >> Walter Mourão >>> >> http://waltermourao.com.br >>> >> http://arcadian.com.br >>> >> http://oriens.com.br >>> >> >>> > >>> > >> >> > -- inexso - information exchange solutions GmbH Bismarckstraße 13 | 26122 Oldenburg Tel.: +49 441 4082 356 | FAX: +49 441 4082 355 | www.inexso.de