I, too, agree that this may not be the best way of doing things. But, anyway, there is a solution that will work:
Use ValidationError rather than just a string public void updateModel() { try { super.updateModel(); } catch(Exception ex) { ValidationError error = new ValidationError(); error.setMessage(ex.getMessage()); /* or you could do this: * error.addMessageKey("MaximumValidator"); * error.setVariable("maximum", 1); */ error((IValidationError) error); } } -- Jeremy Thomerson http://www.wickettraining.com On Tue, Feb 17, 2009 at 11:23 AM, Eduardo Nunes <esnu...@gmail.com> wrote: > I'm a little bit out of what you are doing, but validate information > directly in setter methods usually isn't a good option... > > my 50c > > On Tue, Feb 17, 2009 at 2:19 PM, walnutmon <justin.m.boy...@gmail.com> > wrote: > > > > That's a fantastic idea, I'll definitely do that. > > > > There is one problem, because the validation is actualy coming from the > > domain objects "setters", I don't know if there was a problem until the > > "updateModel" method is called... I don't know if I like calling > > "updateModel" from the validator, since I'm not sure whether that will > break > > other things down the road, I'll try it and report back. > > > > Is there a way that I can retrieve the setter, so that I can set it, and > > then return it to it's initial state before the form calls 'updateModel' > on > > it's children? Perhaps the component can only take PropertyModels? > > > > > > Jeremy Thomerson-5 wrote: > >> > >> in the custom component's constructor, why don't you do: > >> > >> add(new IValidator() { > >> ... > >> }); > >> > >> Or create a custom validator class and just add it to your custom > >> components. > >> > >> On Tue, Feb 17, 2009 at 10:04 AM, walnutmon > >> <justin.m.boy...@gmail.com>wrote: > >> > >>> > >>> All, > >>> > >>> I have custom components which know if they have a validation error > when > >>> they call "updateModel()", the domain is where validation happens, I'm > >>> using > >>> this to post error messages which are rendered like a validation error: > >>> > >>> @Override > >>> public void updateModel() > >>> { > >>> try > >>> { > >>> super.updateModel(); > >>> } catch (Exception ex) > >>> { > >>> error(ex.getCause().getMessage()); > >>> } > >>> } > >>> > >>> however, unlike a wicket validation error, it still finishes the form > >>> submission, is there a way for a component to add a validation error, > so > >>> that it behaves as if it were a MaximumLengthValidator() error, or > >>> something > >>> similar? Or do I need to extend IValidator, and pass it the > component's > >>> domain object in order to do the check and use wicket's validation form > >>> processing procedure. > >>> > >>> Thanks! > >>> Justin > >>> -- > >>> View this message in context: > >>> > http://www.nabble.com/Validation-From-A-Custom-Component-tp22060300p22060300.html > >>> Sent from the Wicket - User mailing list archive at Nabble.com. > >>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > >>> For additional commands, e-mail: users-h...@wicket.apache.org > >>> > >>> > >> > >> > >> -- > >> Jeremy Thomerson > >> http://www.wickettraining.com > >> > >> > > > > -- > > View this message in context: > http://www.nabble.com/Validation-From-A-Custom-Component-tp22060300p22061961.html > > Sent from the Wicket - User mailing list archive at Nabble.com. > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > For additional commands, e-mail: users-h...@wicket.apache.org > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > >