Afaik there is no way to set this behavior by some flag. But
1) You can extend TextField to wrap it's model with model which on
getObject() trim (ie. remove begging and trailing spaces) returning
string if Model's type is Sting (in other cases it doesn't make
sense)... when value is setted into model trimming is done by wicket
(see FormComponent#shouldTrimInput) automatically (in older version you
have to do this manually by overriding FormComponent#convertInput()
method)
2) you can do aspect (AspectJ?) to do the same as 1) - with aspect there
is no need to make new class of TextField's type so there is no need to
change the code base...
3) you can override implementation of coverters
override Application#newConverterLocator() to
protected IConverterLocator newConverterLocator() {
ConverterLocator locator = new ConverterLocator();
locator.set(String.class, new IConverter() {
public Object convertToObject(String value,
Locale locale) {
return convertToString(value,
locale);
}
public String convertToString(Object value,
Locale locale) {
return value.toString().trim();
// see trim() which remove trailing and beginning spaces
}
});
return locator;
}
I didn't test it but you've got the idea... But this solution is really
bad, because if you want to turn off this behaviour (trimming) in some
cases
you can't do it without overriding for example Component#getConverter()
to convert it in default way and it's a mess.
I recommend you to trim it by hand on Model level (make some wrapper
model to do it so) or on tier (layer) where you obtain data (data acces
layer? service level?). It depends on if spaces have some business
meaning. If yes do it on model level otherwise on that layer.
Best wishes
MB
-----Original Message-----
From: David Chang [mailto:[email protected]]
Sent: Friday, October 02, 2009 5:25 AM
To: [email protected]
Subject: Can Wicket automatically remove beginning and trailing spaces
in a text field?
How to set it up in a Wicket application? I would like to set it up in
the application level.
Thanks!
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]