Aaahhh... Ok... Thx... :)

BTJ

On Thu, 19 Oct 2006 15:57:31 -0400
Jeff Bischoff <[EMAIL PROTECTED]> wrote:

> Bjorn,
> 
> That may have been because you were setting the values in the 
> valueChangeListener of an "immediate" component, and then the values of 
> the other components were overwritten in the "Update Model Values" 
> phase. Your immediate action listener is running in between the "Apply 
> Request Values" phase and the "Process Validations" phase.
> 
> Perhaps I should have explained my little skipValidation() method a bit 
> better. It doesn't just skip the "Process Validations" phase, it skips 
> right to "Render Response" phase. So you also skip the "Update Model 
> Values" and "Invoke Application" phases. This means that the changes you 
> make in your valueChangeListener to the other model values will "stick," 
> because the "Update Model Values" phase will never be called to 
> overwrite those changes.
> 
> So if you make careful use of these JSF Utility functions, you can 
> achieve all sorts of desired behaviours. I admit, you are sort of 
> "working-around" the framework... perhaps a future version of JSF will 
> introduce a more flexible model for validations. :)
> 
> Regards,
> 
> Jeff Bischoff
> Kenneth L Kurz & Associates, Inc.
> 
> Bjørn T Johansen wrote:
> > It may be that I am misunderstanding but I remember I had problem setting 
> > values in my valueChangeListener method a while ago
> > because those values were overwritten after the valueChangeListener had 
> > been invoked...
> > 
> > BTJ
> > 
> > On Thu, 19 Oct 2006 15:13:00 -0400
> > Jeff Bischoff <[EMAIL PROTECTED]> wrote:
> > 
> >> Sure it will.
> >>
> >> In your valueChangeListener:
> >> 1) Update your model as needed (i.e. explicitly call any setters for 
> >> properties you need to change the value of).
> >>
> >> 2) Call refresh() from the wiki to update input components with the new 
> >> values. Do this only if needed, as it will replace anything the user has 
> >> entered with the model values. It's mainly useful on events that load 
> >> new data.
> >>
> >> 3) Call skipValidation() to bypass the validations, including "required"
> >>
> >>
> >> What is it that you are trying to do where this pattern isn't sufficient?
> >>
> >> Bjørn T Johansen wrote:
> >>> Well, I need to update my form with new data as a result of that value 
> >>> change, so as far as I can tell, using this
> >>> skipValidation metehod won't help me?
> >>>
> >>>
> >>> BTJ
> >>>
> >>> On Thu, 19 Oct 2006 09:31:17 -0400
> >>> Jeff Bischoff <[EMAIL PROTECTED]> wrote:
> >>>
> >>>> Bjorn,
> >>>>
> >>>> Put a method like this in some utility class in your web tier java code:
> >>>>
> >>>> public static void skipValidation() {
> >>>>  FacesContext context = FacesContext.getCurrentInstance();
> >>>>  context.renderResponse();
> >>>> }
> >>>>
> >>>> Then you can call skipValidation() in your valueChangeListener method.
> >>>>
> >>>> You may notice that input components are not updated with model values 
> >>>> that may have changed as a result of your immediate methods. If you, 
> >>>> this article [1] may be of use to you as well.
> >>>>
> >>>> [1] http://wiki.apache.org/myfaces/ClearInputComponents
> >>>>
> >>>> Regards,
> >>>>
> >>>> Jeff Bischoff
> >>>> Kenneth L Kurz & Associates, Inc.
> >>>>
> >>>> Bjørn T Johansen wrote:
> >>>>> I have some edit boxes that has the attribute required set to true but 
> >>>>> I also have a selectOneMenu which does
> >>>>> a submit when value changes... What is the best way to skip the 
> >>>>> required test when submitting using the
> >>>>> selectOneMenu onChange event?
> >>>>>
> >>>>>
> >>>>> Regards,
> >>>>>
> >>>>> BTJ
> >>>>>
> >>>
> >>>
> >>
> > 
> > 
> > 
> 
> 

Reply via email to