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)

Reply via email to