Hi Igor, I'm a little confused. I attached a StringValidator - shouldn't that work on a String? Also I assumed Validators work on the values of form fields after converted to String?Thanks, --jim
On Wed, May 13, 2009 at 10:00 AM, james o'brien <jobr...@spinnphr.com>wrote: > Hello,I have a converter which I can verify is being called, but when the > validator is being called it is not being called on the String value but the > object which causes a ClassCastException. > > Here is my converter: > > @Override > > protected IConverterLocator newConverterLocator() { > > ConverterLocator locator = new ConverterLocator(); > > > locator.set(types.thing.wc.microsoft.com.CodableValue.class, new IConverter() > { > > > public Object convertToObject(String arg0, Locale arg1) { > > types.thing.wc.microsoft.com.CodableValue cv = new > types.thing.wc.microsoft.com.CodableValue(); > > cv.setText(arg0); > > return cv; > > } > > > public String convertToString(Object arg0, Locale arg1) { > > return ((types.thing.wc.microsoft.com.CodableValue) arg0).getText(); > > } > > }); > > > return locator; > > } > > > Here is my form: > > TextField treatment = new TextField("treatment", new > PropertyModel(allergy, "treatment")); > > treatment.setType(CodableValue.class); > > treatment.add(StringValidator.lengthBetween(2, 200)); > > add(treatment); > > > Here is the error: > > > org.apache.wicket.WicketRuntimeException: Exception > 'java.lang.ClassCastException: types.thing.wc.microsoft.com.CodableValue' > occurred during validation > org.apache.wicket.validation.validator.StringValidator$LengthBetweenValidator > on component 4:border:addAllergy:treatment > > at > org.apache.wicket.markup.html.form.FormComponent.validateValidators(FormComponent.java:1510) > > at > org.apache.wicket.markup.html.form.FormComponent.validate(FormComponent.java:1102) > > at org.apache.wicket.markup.html.form.Form$21.validate(Form.java:1876) > > at > org.apache.wicket.markup.html.form.Form$ValidationVisitor.formComponent(Form.java:165) > > at > org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrderHelper(FormComponent.java:421) > > at > org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrderHelper(FormComponent.java:408) > > at > org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrder(FormComponent.java:385) >