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)
>

Reply via email to