The problem with this approach is that you are limited to a single error
message per component.

I think what we need is a label in the form component, or a resource key to
that label. The combination of this label and a resource key pointing to a
generic error message in the validator should allow us to create good error
messages.

For example if you have a text field with the label "First Name" and
max-string-length validator fails you can construct a message "First Name
contains too many characters" by using the combination of component label
and validator message "${label} contains too many characters".


Igor


> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of 
> Phil Kulak
> Sent: Thursday, July 21, 2005 9:40 AM
> To: wicket-user@lists.sourceforge.net
> Subject: Re: [Wicket-user] VOTE: make AbstractValidator threadsafe
> 
> How about having FormComponent supply the resource key? It 
> seems like the means to uniqely identify a component (the 
> resource key) belongs in the component itself, not the validator.
> 
> On 7/21/05, Brad Pardee <[EMAIL PROTECTED]> wrote:
> > It seems to me you have 2 user needs here:
> > 
> > 1) Those applications that follow a pretty standard 
> architecture where 
> > creating a Form properties file similar to the forminput 
> example suits 
> > their needs.
> > For these apps, sharing a static instance of a validator is 
> fine and 
> > results in less object creation/garbage collection.
> > 
> > 2) Those applications that for whatever reason can't or 
> don't want to 
> > use a resourceKey generated based on the FormComponent and instead 
> > want to specify their own resourceKey.  For these users, it 
> would be 
> > easiest if they were able to set the resourceKey in the 
> validator, but 
> > otherwise they can get around this by extending the 
> validator classes 
> > or creating anonymous inner classes (provided singleton 
> classes like 
> > RequiredValidator change their default ctor to protected).
> > 
> > Well, my application falls under #2, so you know what side I'll be 
> > arguing.  I think most of the validators already have 
> state, be it the 
> > range values for IntegerValidator or whatever.  It might be argued 
> > that a single static instance with this range would be 
> created, but I 
> > would also create a single static instance that also includes my 
> > resource key.  I think that in practice, the only real 
> object creation 
> > savings occurs when using the RequiredValidator.  I think in the 
> > future the plan is to allow the use of ${label}, so at that point 
> > wouldn't it make sense to create a single static validator with a 
> > specified resource key with value of "field '${label}' is 
> required."  
> > How would you achieve this without the resource key, unless 
> you allow 
> > wildcards in the properties file like:
> > "*.*.RequiredValidator=field '${label}' is required"
> > 
> > I can see both sides, but I personally don't like the idea 
> of having 
> > to extend each Validator for my case.
> > I know this is a less than ideal solution, but how about if 
> a ctor was 
> > added that included the resourceKey and the setter was 
> removed.  Would 
> > that make it explicit that you use the one default ctor for 
> stateless 
> > and the resourceKey ctor for stateful?
> > 
> > Anyway, just my rambling stream of consciousness.
> > I've been using wicket for less than 2 weeks, to I may be 
> completely 
> > off base or missing something obvious (I think its awesome, btw).
> > 
> > -Brad
> > 
> > 
> > 
> > --- Eelco Hillenius <[EMAIL PROTECTED]>
> > wrote:
> > 
> > > Chris Turner wrote:
> > >
> > > > I'm also +1 on making the current validators
> > > stateless.
> > >
> > >
> > > Ok, thanks. Jonathan also was +1 btw.
> > >
> > > > However, I think we also need to keep supporting
> > > the ability to create
> > > > stateful validators.
> > >
> > >
> > > Sure, I think that would be no problem. It is a user's 
> > > responsibility now though.
> > 
> > 
> > 
> > -------------------------------------------------------
> > SF.Net email is sponsored by: Discover Easy Linux Migration 
> Strategies
> > from IBM. Find simple to follow Roadmaps, straightforward articles,
> > informative Webcasts and more! Get everything you need to get up to
> > speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> > _______________________________________________
> > Wicket-user mailing list
> > Wicket-user@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wicket-user
> >
> 
> 
> -------------------------------------------------------
> SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
> from IBM. Find simple to follow Roadmaps, straightforward articles,
> informative Webcasts and more! Get everything you need to get up to
> speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=ick
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
> 
> 
> 




-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=click
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to