ok it was: <contribution configuration-id="tapestry.form.validator.Validators"> <validator name="PersonDup" configurable="false" class=" org.jfly.demo.edittable.validators.DuplicateValidator "/> </contribution>
but why the validators component property is empty ?? On 2/20/07, Andrea Chiumenti < [EMAIL PROTECTED]> wrote:
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