Hello I'm trying to write a custom validator for my demo app.

I have this class:
/*
* DuplicateValidator.java
*
* Created on February 20, 2007, 1:24 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

package org.jfly.demo.edittable.validators;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.form.ValidationMessages;
import org.apache.tapestry.form.validator.BaseValidator;
import org.apache.tapestry.valid.ValidationConstraint;
import org.apache.tapestry.valid.ValidatorException;
import org.jfly.demo.edittable.vo.Person;

/**
*
* @author kiuma
*/
public class DuplicateValidator extends BaseValidator {
   public static final String DUPLICATE_PERSON = "duplicate.person";

   public DuplicateValidator() {
   }

   public DuplicateValidator(String initializer)
   {
       super(initializer);
   }

   /**
    * Does comparison based on the [EMAIL PROTECTED] Number#doubleValue()}.
    */

   public void validate(IFormComponent field, ValidationMessages messages,
Object object)
           throws ValidatorException {
       List value = (List) object;
       List parsedPrs = new ArrayList();
       Iterator iter = value.iterator();
       Person dupPerson = null;
       while (iter.hasNext()) {
           Person person = (Person)iter.next();
           if (parsedPrs.contains(person)) {
               dupPerson = person;
               break;
           } else {
               parsedPrs.add(person);
           }
       }
       if (dupPerson != null)
           throw new ValidatorException(buildMessage(messages, field,
dupPerson));
   }

   private String buildMessage(ValidationMessages messages, IFormComponent
field, Person person)
   {
       return messages.formatValidationMessage(
               getMessage(),
               DUPLICATE_PERSON,
               new Object[]
               { person.getSurname(), person.getName() });
   }


}

--------------------------------------------------------------------------------------
then in hivemodule.xml I have this:

<contribution configuration-id="tapestry.form.validator.Validators">
       <validator name="PersonDup" class="
org.jfly.demo.edittable.validators.DuplicateValidator"/>
   </contribution>

----------------------------------------------------------------------------------------
The interested Component binding is:
<binding name="validators" value="validators:PersonDup"></binding>

The problem is that when I try to render the page I've this message back:

Validator 'name' must be configured in order to be used. The value is
configured by changing 'name' to 'name=value'.



What am I missing ?

Thx,
kiuma

Reply via email to