incubator-adffaces-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "D. Cardon" <my_trash_m...@yahoo.com>
Subject Re: tr:subform and autoSubmit bug
Date Tue, 24 Apr 2007 22:05:13 GMT
I don't know if this is a related issue (it seems to be to me), but subform validation does
not
occur when a parent form is submitted.  I.e., say that I have a form with a subform in it
and a
submit button outside of the subform---like this:

<tr:form>
   <tr:subform>
      <tr:inputText value="#{pageFlowScope.inputValue}" label="Input" required="true" />
   </tr:subform>

   <tr:commandButton text="Submit" action="doIt"/>

</tr:form>

If I press the command button, then the parent form will submit even if the required field
is left
empty!  It doesn't seem as if that is how it is supposed to work, but I don't know.

--David

--- Adam Winer <awiner@gmail.com> wrote:

> It's a known limitation of how subforms are implemented:
> they look for FacesEvents queued during processDecodes()
> to see if that subtree should be further processed.  However,
> autoSubmit components don't queue a FacesEvent until
> ValueChangeEvent, which happens later in the cycle.
> 
> It should get fixed, though.
> 
> -- Adam
> 
> 
> On 4/24/07, D. Cardon <my_trash_mail@yahoo.com> wrote:
> > Hi,
> >
> > I've done some more testing with the subform functionality in Trinidad and
> > think I've isolated a bug with a very simple test case.  To reproduce this
> > functionality, a few modifications need to be made to the blank project that is
> > found in the trinidad repository.  Here's what to do:
> >
> > - Modify the index.jspx entry for the tr:inputText, replacing it with:
> >
> > <tr:inputText label="Your name" id="input1" value="#{helloWorldBacking.name}"
> >   autoSubmit="true" valueChangeListener="#{helloWorldBacking.changeMethod}" />
> >
> > Then, implement the changeMethod in the backing bean:
> >
> >   public void changeMethod( ValueChangeEvent event )
> >   {
> >           System.out.println( "Change method called!" );
> >   }
> >
> > Now, test the page by entering a value into the test field and then tabbing
> > away from it.  This will fire the field to be submitted.  In your console, you
> > should see the "Change method called!" message appearing--this behaves as
> > expected.
> >
> > To reproduce the invalid behavior with a subform, alter index.jspx slightly, by
> > wrapping the inputText (or its containing component) in a tr:subform tag.
> > Reloading the page and performing the test again, you should no longer see the
> > "Change method called!" message.  This behavior appears to be the same for any
> > component set to autoSubmit.
> >
> > After digging into the code somewhat, it appears that the subform is unaware
> > that the inputText component has changed and so it does not run its children
> > through the necessary phases.
> >
> > The root of this symptom actually relates to a lot of other problems with the
> > subform tag.  For example, using the subform to isolate regions for validation
> > does not work at all due to this issue, because validations are not processed
> > and model values are not updated for the components in the subform.
> >
> > Since I'm a new Trinidad user, I don't really know how this should be reported.
> >  I did sign up for JIRA, but I'm not sure what the severity of the issue should
> > be.  Also, it would be reassuring if someone else can reproduce this, that
> > would verify that it's not just some problem with my machine / setup.
> >
> > Thanks,
> >
> > --David
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam protection around
> > http://mail.yahoo.com
> >
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Mime
View raw message