I will try the Andrew's workaround and/or try another way to accomplish what I want.
I will defend my point of view because: 1 - PPR already allows perfectly one to avoid refresh some of the view, so it is possible to have control when it is *not* desired to refresh a subform; 2 - tr:outputText and tr:inputText should have a similar behavior when showing the property value. Thank you very much, guys. Walter Mourão http://waltermourao.com.br http://arcadian.com.br http://oriens.com.br On Wed, Sep 10, 2008 at 3:12 PM, Andrew Robinson < [EMAIL PROTECTED]> wrote: > IMO, the user is submitting the subform, not the entire page, > therefore only the subform values should be sent & everything else > lost right? Perhaps a toggle option would be desired. I can see the > value of both approaches. > > Using two different tr:forms would theoretically work, but that is not > always easy to visually use. I would think that this would be > discussed before any thought of a fix could be made. It just seems > that there is no support for Walter's use case. I would think that it > would be possible to come up with both use cases of (1) preserving > current input components values that the client entered and (2) losing > the values to reflect changes to the model. > > Right now, JSF treats use case #2 very poorly and the standard > work-around is to clear the submitted value and local values from > EditableValueHolders when it is desired to reset their rendered state > to their model values. > > Maybe the subform is not the best place to fix this, I am not sure. > > -Andrew > > On Wed, Sep 10, 2008 at 11:58 AM, Walter Mourão <[EMAIL PROTECTED]> > wrote: > > Hi Volker, > > > > I think the question is not if it was submitted or not but if all the > > visible references (inputText, outputText or everything else) of a > property > > instance show its current value when the view is rendered. > > > > Regards, > > > > Walter Mourão > > http://waltermourao.com.br > > http://arcadian.com.br > > http://oriens.com.br > > > > > > > > On Wed, Sep 10, 2008 at 2:12 PM, Volker Weber <[EMAIL PROTECTED]> wrote: > >> > >> 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 > > > > >

