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)