Hello again, I sorted the problem thanks to Igor's help as follows: <form t:type="form" t:id="childminderRegistrationForm" * validate="childminderAccount"* clientValidation="none"> Thanks, Julien.
2011/10/21 Julien Martin <bal...@gmail.com> > Igor, > Here is the page: > > *public class InscriptionProfessionnelGardeEnfant {* > * > * > * @Property* > * @Persist* > * @Valid* > * private ChildminderAccount childminderAccount;* > * > * > * @Property* > * private SelectModel childminderStatusSelectModel;* > * > * > * @Inject* > * private SelectModelFactory selectModelFactory;* > * > * > * @Property* > * @NotNull* > * private String accountPasswordConfirmation;* > * > * > * @Property* > * private List<ChildMinderStatus> childMinderStatusList;* > * > * > * @Inject* > * private BignibouService service;* > * > * > * @InjectComponent* > * private Form childminderRegistrationForm;* > * > * > * @OnEvent(EventConstants.PREPARE)* > * void prepare() {* > * childminderAccount = new ChildminderAccount();* > * childMinderStatusList = service.loadChildminderStatusList();* > * childminderStatusSelectModel = > selectModelFactory.create(childMinderStatusList,"childMinderStatusDescription"); > * > * }* > * > * > * @OnEvent(value = EventConstants.VALIDATE, component = > "childminderRegistrationForm")* > * void validateRegistrationForm() {* > * if (childminderRegistrationForm.isValid()) {* > * if > (accountPasswordConfirmation.equals(childminderAccount.getAccountPassword())) > {* > * service.persistChildminderAccount(childminderAccount);* > * }* > * else {* > * childminderRegistrationForm.recordError("passwords must > match");//todo* > * }* > * > * > * } else {* > * System.out.println("something went wrong");* > * childminderRegistrationForm.recordError("something went > wrong");//todo* > * }* > * }* > * > * > * @DiscardAfter* > * @OnEvent(EventConstants.SUCCESS)* > * void successfulRegistrationForm() {* > * System.out.println("success");* > * > * > * }* > * > * > *}* > > ...and the template: > *<t:sublayout xmlns:t=" > http://tapestry.apache.org/schema/tapestry_5_1_0.xsd">* > * <head>* > * <title>Hello World Page</title>* > * </head>* > * <body>* > * <form t:type="form" t:id="childminderRegistrationForm" > validate="this" clientValidation="none">* > * <div>* > * <t:errors/>* > * </div>* > * <div>* > * <label t:type="label" for="accountEmailAddress"/>* > * <input t:type="textfield" t:id="accountEmailAddress" > value="childminderAccount.accountEmailAddress"/>* > * </div>* > * <div>* > * <label t:type="label" for="accountFirstName"/>* > * <input t:type="textfield" t:id="accountFirstName" > value="childminderAccount.accountFirstName"/>* > * </div>* > * <div>* > * <label t:type="label" for="accountLastName"/>* > * <input t:type="textfield" t:id="accountLastName" > value="childminderAccount.accountLastName"/>* > * </div>* > * <div>* > * <label t:type="label" for="accountPassword"/>* > * <input t:type="textfield" t:id="accountPassword" > value="childminderAccount.accountPassword"/>* > * </div>* > * <div>* > * <label t:type="label" for="accountPasswordConfirmation"/>* > * <input t:type="textfield" t:id="accountPasswordConfirmation" > value="accountPasswordConfirmation"/>* > * </div>* > * <div>* > * <label t:type="label" for="postcode"/>* > * <input t:type="textfield" t:id="postcode" id="postcode" > name="postcode" size="40"* > * value="childminderAccount.postcodeByPostcodeId" > translate="postcodeTranslator"/>* > * </div>* > * <div>* > * <input t:type="select" model="childminderStatusSelectModel" > t:id="childminderStatus"* > * > value="childminderAccount.childMinderStatusByChildMinderStatusId" > blankLabel="votre statut"/>* > * </div>* > * <div><input t:type="submit" type="submit" value="ok"/></div>* > * </form>* > * </body>* > *</t:sublayout>* > > Can you please let me know how to pass the childminderAccount to the form's > validate parameter? Do I do this in the template or the class? > Regards, > > J. > > 2011/10/21 Igor Drobiazko <igor.drobia...@gmail.com> > >> Either the object graph is not traversed or your ChildminderAccount object >> is null. The @Valid annotation is ignored for null objects. Please post >> the >> entire page class and template. You can also pass childminderAccount to >> the >> Form's validate parameter. >> >> On Thu, Oct 20, 2011 at 9:53 PM, Julien Martin <bal...@gmail.com> wrote: >> >> > Hi Igor, >> > >> > Yes I do use the form component as follows: >> > >> > From the class: >> > * @InjectComponent* >> > * private Form childminderRegistrationForm;* >> > * >> > * >> > From template: >> > * <form t:type="form" t:id="childminderRegistrationForm" >> validate="this" >> > clientValidation="none">* >> > >> > Julien. >> > >> > 2011/10/20 Igor Drobiazko <igor.drobia...@gmail.com> >> > >> > > Please more details. "one of my Tapestry classes" is not precise >> enough >> > to >> > > identify the problem. You are using the Form component, right? Did you >> > use >> > > the Form's validate parameter? >> > > >> > > On Thu, Oct 20, 2011 at 9:30 PM, Julien Martin <bal...@gmail.com> >> wrote: >> > > >> > > > Hello, >> > > > >> > > > I have the following property in one of my Tapestry classes: >> > > > * @Property* >> > > > * @Persist* >> > > > * @Valid* >> > > > * private ChildminderAccount childminderAccount;* >> > > > >> > > > >> > > > The ChildminderAccount entity extends an abstract Account entity >> class >> > as >> > > > follows: >> > > > * public class ChildminderAccount extends Account* >> > > > >> > > > And finally the Account entity class has several properties >> including >> > > this >> > > > one: >> > > > * @NotNull* >> > > > * private String accountFirstname;* >> > > > >> > > > The problem I have is that Tapestry won't validate the annotated >> > > properties >> > > > even though I have added the tapestry-beanvalidator jar in the >> > classpath. >> > > > >> > > > Note that I don't use the beanform component for now. >> > > > >> > > > I use T5.2.6. >> > > > >> > > > Can anyone please help? >> > > > >> > > > Regards, >> > > > >> > > > Julien. >> > > > >> > > >> > > >> > > >> > > -- >> > > Best regards, >> > > >> > > Igor Drobiazko >> > > http://tapestry5.de >> > > >> > >> >> >> >> -- >> Best regards, >> >> Igor Drobiazko >> http://tapestry5.de >> > >