You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by wo...@thomson.com on 2006/05/18 17:55:37 UTC
dynamically generated form fields and form level validation
Does someone already has a solution for this problem outlined below??
I'm using version 3.0.4
Chris Norris <CNorris <at> widen.com> writes:
>
> I think this is what you are talking about:
> http://thread.gmane.org/gmane.comp.jakarta.tapestry.devel/1632
>
> It seems like they were talking in January 2004 (a year and a half
ago?
> Time flies...) about putting it in the next release... But still
hasn't
> been done? I'm still trying my page property validator (it'll hold
some
> state). That seems a little cleaner than patching Tapestry.
> -Chris
>
> > -----Original Message-----
> > From: robertz <at> scazdl.org [mailto:robertz <at> scazdl.org]
> > Sent: Thursday, June 02, 2005 12:56 PM
> > To: Tapestry users
> > Subject: Re: dynamically generated form fields and form level
> > validation
> >
> > Harish submitted a patch a /long/ while back that dealt with
> > the scenario
> > of how to set a particular field in error when it's rendered
> > in a loop. He
> > added a new "index" property, as I recall. The patch was
> > never applied,
> > but if you search the archives for it, you should be able to find
it.
> > I also know that the patch cannot be cleanly applied to 3.0.3 due to
> > conflicting changes, so, you may just need to take the patch
> > and use it as
> > the basis for your own modifications.
> > Will this issue be addressed in the new validation stuff Paul
> > is working
> > on for 4.0?
> >
> > Robert
> >
> > > I'm going to try to boil this down to the neccesities. If
> > it doesn't
> > > make sense, I'll provide some code.
> > >
> > > I have a Foreach loop inside of a form. The loop generates
> > a couple of
> > > sets of FieldLabel/ValidField components*.
> > >
> > > The problem is that two of the fields' validation depend on
> > each other.
> > > If both fields are empty, they both need to be marked as
> > errored so that
> > > the error markup will be written. If one or the other has
> > a value, they
> > > are both valid. Can someone point me in the best direction
> > for this?
> > >
> > > My first thought was to record the name of the ValidField
> > component when
> > > the page was getting the value for it. I would get the
> > names, something
> > > like validComponentName and validComponentName$0. At form
> > rewind time,
> > > though, I couldn't figure out how to get the components given
those
> > > names and set them in error. It seems impossible, given
> > that getName()
> > > will always return the most recent name generated for the
> > component. I
> > > tried going through the ValidationDelegate's FieldTrackings
> > and going
> > > through the map returned by getComponents(), neither of which
worked
> > > very well.
> > >
> > > My next option was going to be to make a special validator for
this
> > > purpose. It would have to be a page property rather than a
> > bean so that
> > > the same validator would be used for both ValidFields. All of
these
> > > approaches seem ugly to me. Ideas? Directions?
> > >
> > > -Chris
> > >
> > >
> > > *uses a Defer type component to take care of the off by one
> > validation
> > > error. the Defer component wraps a FieldLabel and takes in
> > a block that
> > > contains a ValidField:
> > > protected void renderComponent(IMarkupWriter writer,
IRequestCycle
> > > cycle)
> > > {
> > > IMarkupWriter nested = writer.getNestedWriter();
> > > getBlock().renderBody(nested, cycle);
> > > renderBody(writer, cycle);
> > > nested.close();
> > > }
> > >
> > >
> >
> >
> >
---------------------------------------------------------------------
> > To unsubscribe, e-mail: tapestry-user-unsubscribe <at>
jakarta.apache.org
> > For additional commands, e-mail: tapestry-user-help <at>
jakarta.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe <at>
jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help <at>
jakarta.apache.org
>
>