Hi! I am trying to move the validation logic definition from the tml back to the "application source code", because my Hibernate domain model drives the required and length constrains anyway. So I wonder why all checks have to be declared by "t:validation" on the "gui" side redundently. The basic idea is to have a ModelValidator which implements the Tapestry Validator interface and assembles other Validator based on the model, more precise the column annotation of the model.
So I wrote the validator and created an instance by my AppModule wihthin a contribute method. Worked fine. Inside the tml the following code snipped binds the textfield and the new validator: <input type="text" t:id="userAddressId" t:validate="modelValidation=Address.userId"/> which means: please take all validations from column "userId" of bean "Address". In my validation class I tried to reuse all existing Tapestry validators by using the "formSupport". public class ModelValidator ... { ... public void render(final Field field, final String constraintValue, final MessageFormatter formatter, final MarkupWriter writer, final FormSupport formSupport) { // hardcoded for testing. if (constraintValue.equals("Address.userId")) { formSupport.addValidation(field, "maxLength", "my maxLength message to build", new Long(10)); formSupport.addValidation(field, "required", "my required message to build", null); } } .... } Everything works but then I get an error message within the browser complaining "Function Tapestry.Validator.maxLength() does not exist for Field 'userAddressId'. Well, unfortunately that's right :-( Which further steps are required to create the missing java script code which I guess is created by Tapestry when parsing the t:validation entry in the tml? Seems Tapestry does a lot of magic behind the scenes and I really do not know where to start.. But: In case there is another validation solution to keep the rules inside the application and not the gui I am also interested in. Thanks in advance Jens --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]