Hello, I am trying to implement tests for my Tapestry app.
First, I noticed that since upgrading to T5.3.2 and Spring 3.1.0 I get the following stacktrace when Tomcat starts: 14 févr. 2012 17:07:50 org.apache.catalina.startup.ContextConfig checkHandlesTypes ATTENTION: Unable to load class [org.apache.xml.resolver.Catalog] to check against the @HandlesTypes annotation of one or more ServletContentInitializers. java.lang.ClassNotFoundException: org.apache.xml.resolver.Catalog at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:2006) at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1969) at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1858) at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1826) at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1812) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1306) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:896) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:322) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5103) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) at org.apache.catalina.startup.Catalina.start(Catalina.java:621) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450) 14 févr. 2012 17:07:50 org.apache.catalina.startup.ContextConfig checkHandlesTypes ATTENTION: Unable to load class [org.apache.xml.resolver.CatalogEntry] to check against the @HandlesTypes annotation of one or more ServletContentInitializers. java.lang.ClassNotFoundException: org.apache.xml.resolver.CatalogEntry at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:2006) at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1969) at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1858) at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1826) at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1812) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1306) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:896) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:322) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5103) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) at org.apache.catalina.startup.Catalina.start(Catalina.java:621) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450) 14 févr. 2012 17:07:50 org.apache.catalina.startup.ContextConfig checkHandlesTypes Second, when I run my test I get the following stacktrace: 5336 [main] ERROR org.apache.tapestry5.ioc.Registry - Unable to inject component into field acceptsConditionsField of class com.bignibou.web.pages.account.ChildminderRegistration: Component account/ChildminderRegistration does not contain embedded component 'acceptsConditions'. 5337 [main] ERROR org.apache.tapestry5.ioc.Registry - Operations trace: 5337 [main] ERROR org.apache.tapestry5.ioc.Registry - [ 1] Constructing instance of page class com.bignibou.web.pages.account.ChildminderRegistration 5345 [main] ERROR org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler - Processing of request failed with uncaught exception: Unable to inject component into field acceptsConditionsField of class com.bignibou.web.pages.account.ChildminderRegistration: Component account/ChildminderRegistration does not contain embedded component 'acceptsConditions'. org.apache.tapestry5.ioc.internal.OperationException: Unable to inject component into field acceptsConditionsField of class com.bignibou.web.pages.account.ChildminderRegistration: Component account/ChildminderRegistration does not contain embedded component 'acceptsConditions'. at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88) at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87) at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121) at org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.java:177) at $PageLoader_f5cef69b800f.loadPage(Unknown Source) at org.apache.tapestry5.internal.services.PageSourceImpl.getPage(PageSourceImpl.java:104) at $PageSource_f5cef69b800c.getPage(Unknown Source) at org.apache.tapestry5.internal.services.NonPoolingRequestPageCacheImpl.get(NonPoolingRequestPageCacheImpl.java:82) at $RequestPageCache_f5cef69b800b.get(Unknown Source) at $RequestPageCache_f5cef69b8006.get(Unknown Source) at org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:55) at org.apache.tapestry5.services.TapestryModule$37.handle(TapestryModule.java:2207) at $PageRenderRequestHandler_f5cef69b800a.handle(Unknown Source) at $PageRenderRequestHandler_f5cef69b8004.handle(Unknown Source) at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48) at org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47) at $ComponentRequestHandler_f5cef69b8005.handlePageRender(Unknown Source) at $ComponentRequestHandler_f5cef69b7fc9.handlePageRender(Unknown Source) at org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45) at $Dispatcher_f5cef69b7fcc.dispatch(Unknown Source) at $Dispatcher_f5cef69b7fc3.dispatch(Unknown Source) at org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302) at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) at $RequestHandler_f5cef69b7fc5.service(Unknown Source) at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902) at $RequestHandler_f5cef69b7fc5.service(Unknown Source) at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892) at $RequestHandler_f5cef69b7fc5.service(Unknown Source) at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90) at $RequestHandler_f5cef69b7fc5.service(Unknown Source) at org.apache.tapestry5.internal.test.EndOfRequestCleanupFilter.service(EndOfRequestCleanupFilter.java:42) at $RequestHandler_f5cef69b7fc5.service(Unknown Source) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:95) at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119) at $RequestHandler_f5cef69b7fc5.service(Unknown Source) at $RequestHandler_f5cef69b7fb4.service(Unknown Source) at org.apache.tapestry5.test.PageTester.renderPageAndReturnResponse(PageTester.java:205) at org.apache.tapestry5.test.PageTester.renderPage(PageTester.java:176) at com.bignibou.web.pages.ChildminderRegistrationTest.testChildminderRegistration(ChildminderRegistrationTest.java:24) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: java.lang.RuntimeException: Unable to inject component into field acceptsConditionsField of class com.bignibou.web.pages.account.ChildminderRegistration: Component account/ChildminderRegistration does not contain embedded component 'acceptsConditions'. at org.apache.tapestry5.internal.transform.InjectComponentWorker$InjectedComponentFieldValueConduit.load(InjectComponentWorker.java:71) at org.apache.tapestry5.internal.transform.InjectComponentWorker$InjectedComponentFieldValueConduit.access$000(InjectComponentWorker.java:36) at org.apache.tapestry5.internal.transform.InjectComponentWorker$InjectedComponentFieldValueConduit$1.containingPageDidLoad(InjectComponentWorker.java:57) at org.apache.tapestry5.internal.structure.PageImpl.loaded(PageImpl.java:186) at org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.java:193) at org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.java:178) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74) ... 63 more Caused by: org.apache.tapestry5.ioc.util.UnknownValueException: Component account/ChildminderRegistration does not contain embedded component 'acceptsConditions'. at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.getEmbeddedElement(ComponentPageElementImpl.java:860) at org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.getEmbeddedComponent(InternalComponentResourcesImpl.java:186) at org.apache.tapestry5.internal.transform.InjectComponentWorker$InjectedComponentFieldValueConduit.load(InjectComponentWorker.java:68) ... 69 more Here is the test: *@Test* * public void testChildminderRegistration() {* * String appPackage = "com.bignibou.web";* * String appName = "app";* * BignibouPageTester tester = new BignibouPageTester(appPackage, appName, "src/main/webapp");* * Document childminderRegistrationPage = tester.renderPage("account/childminderregistration");* * Element childminderRegistrationForm = childminderRegistrationPage.getElementById("childminderRegistrationForm");* * Map<String, String> fieldValues = new HashMap<String, String>();* * fieldValues.put("childminderAccount.accountEmailAddress", "bal...@yahoo.fr ");* * fieldValues.put("childminderAccount.accountFirstName", "Julien");* * fieldValues.put("childminderAccount.accountLastName", "Martin");* * fieldValues.put("childminderAccount.accountPassword", "mmmmmm");* * fieldValues.put("accountPasswordConfirmation", "mmmmmm");* * fieldValues.put("childminderAccount.accountPostcode", "75003");* * fieldValues.put("childminderAccount.childminderstatusID", "nourrice");* * fieldValues.put("acceptsConditions", "true");* * fieldValues.put("kaptcha", "i8cookies");* * assertNotNull(tester);* * assertNotNull(childminderRegistrationPage);* * Element kapElem = childminderRegistrationPage.getElementById("kaptcha");* * String kapValue = kapElem.getAttribute("value");* * assertEquals("the message", "i8cookies", kapValue);* * assertNotNull(childminderRegistrationForm);* * Document docFromForm = tester.submitForm(childminderRegistrationForm, fieldValues);* * assertTrue(docFromForm.toString().contains("bal...@yahoo.fr"));* * }* * * Then the java file for account/childminderRegistration: *package com.bignibou.web.pages.account;* * * *import java.util.List;* * * *import javax.validation.Valid;* * * *import org.apache.log4j.Logger;* *import org.apache.tapestry5.EventConstants;* *import org.apache.tapestry5.Link;* *import org.apache.tapestry5.SelectModel;* *import org.apache.tapestry5.annotations.AfterRender;* *import org.apache.tapestry5.annotations.DiscardAfter;* *import org.apache.tapestry5.annotations.InjectComponent;* *import org.apache.tapestry5.annotations.InjectPage;* *import org.apache.tapestry5.annotations.OnEvent;* *import org.apache.tapestry5.annotations.Persist;* *import org.apache.tapestry5.annotations.Property;* *import org.apache.tapestry5.annotations.SetupRender;* *import org.apache.tapestry5.corelib.components.Checkbox;* *import org.apache.tapestry5.corelib.components.Form;* *import org.apache.tapestry5.corelib.components.PasswordField;* *import org.apache.tapestry5.corelib.components.TextField;* *import org.apache.tapestry5.ioc.Messages;* *import org.apache.tapestry5.ioc.annotations.Inject;* *import org.apache.tapestry5.json.JSONObject;* *import org.apache.tapestry5.services.PageRenderLinkSource;* *import org.apache.tapestry5.services.SelectModelFactory;* *import org.apache.tapestry5.services.javascript.JavaScriptSupport;* * * *import com.bignibou.domain.ChildMinderStatus;* *import com.bignibou.domain.ChildminderAccount;* *import com.bignibou.service.AccountService;* *import com.bignibou.web.pages.utils.JSonPostcodesWithQueryParam;* * * *public class ChildminderRegistration {* * * * private Logger log = Logger.getLogger(ChildminderRegistration.class);* * * * @Inject* * private JavaScriptSupport javaScriptSupport;* * * * @Inject* * private PageRenderLinkSource pageRenderLinkSource;* * * * @Property* * @Persist* * @Valid* * private ChildminderAccount childminderAccount;* * * * @Property* * private SelectModel childminderStatusSelectModel;* * * * @Inject* * private Messages messages;* * * * @Inject* * private SelectModelFactory selectModelFactory;* * * * @Property* * private String accountPasswordConfirmation;* * * * @Property* * private List<ChildMinderStatus> childMinderStatusList;* * * * @Inject* * private AccountService accountService;* * * * @InjectComponent("accountEmailAddress")* * private TextField accountEmailAddressField;* * * * @InjectComponent("accountPassword")* * private PasswordField accountPasswordField;* * * * @InjectComponent("accountPasswordConfirmation")* * private PasswordField accountPasswordConfirmationField;* * * * @InjectComponent("acceptsConditions")* * private Checkbox acceptsConditionsField;* * * * @Persist* * @Property* * private boolean acceptsConditions;* * * * @InjectComponent* * private Form childminderRegistrationForm;* * * * @SetupRender* * void prepare() {* * childminderAccount = new ChildminderAccount();* * childMinderStatusList = accountService.loadChildminderStatusList();* * childminderStatusSelectModel = selectModelFactory.create(childMinderStatusList, "childMinderStatusDescription");* * }* * * * @AfterRender* * void afterRender() {* * Link jSonPostcodesWithQueryParamLink = pageRenderLinkSource.createPageRenderLink(JSonPostcodesWithQueryParam.class); * * String link = jSonPostcodesWithQueryParamLink.toAbsoluteURI();* * JSONObject specs = new JSONObject();* * specs.put("link", link);* * javaScriptSupport.addInitializerCall("autocomplete", specs);* * }* * * * @OnEvent(value = EventConstants.VALIDATE, component = "childminderRegistrationForm")* * void validateRegistrationForm() {// TODO: refactor* * * * if (!accountService.validateEmailAddress(childminderAccount.getAccountEmailAddress())) {* * childminderRegistrationForm.recordError(accountEmailAddressField, messages.get("invalid-email-address"));// TODO* * }* * * * if (!accountService.validateEmailAddressDoesNotExist(childminderAccount.getAccountEmailAddress())) {* * childminderRegistrationForm.recordError(accountEmailAddressField, "email existe déjà");* * }* * * * if (!accountService.validatePasswordsEqual(childminderAccount.getAccountPassword(), accountPasswordConfirmation)) {* * childminderRegistrationForm.recordError(accountPasswordField, "passwords must match");// todo* * childminderRegistrationForm.recordError(accountPasswordConfirmationField, "passwords must match");// todo* * }* * * * if (!accountService.validatePasswordStrength(childminderAccount.getAccountPassword())) {* * childminderRegistrationForm.recordError(accountPasswordField, "passwords too weak");// todo* * childminderRegistrationForm.recordError(accountPasswordConfirmationField, "passwords too weak");// todo* * }* * * * if (!acceptsConditions) {* * childminderRegistrationForm.recordError(acceptsConditionsField, "Vous devez accepter les conditions d'utilisation.");//todo* * }* * * * if (childminderRegistrationForm.isValid()) {* * accountService.registerChildminderAccount(childminderAccount);* * successPage.setUp(childminderAccount);* * }* * }* * * * @InjectPage* * private Success successPage;* * * * @DiscardAfter* * @OnEvent(EventConstants.SUBMIT)* * Object successfulRegistrationForm() {* * return successPage;* * }* *}* Here is the template finally: *<t:childminderlayout xmlns:t=" http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter" t:title="message:childminder-registration-title">* * <form t:type="form" t:id="childminderRegistrationForm" t:clientValidation="none">* * <table class="formTable">* * <tr>* * <td><label class="right-align" t:type="label" for="accountEmailAddress" /></td>* * <td><input t:type="textfield" t:id="accountEmailAddress" name="accountEmailAddress" value="childminderAccount.accountEmailAddress" t:validate="required" /></td>* * <td class="error"><t:error for="accountEmailAddress" /></td>* * </tr>* * * * <tr>* * <td><label class="right-align" t:type="label" for="accountFirstName" /></td>* * <td><input t:type="textfield" t:id="accountFirstName" value="childminderAccount.accountFirstName" /></td>* * <td><t:error for="accountFirstName" /></td>* * </tr>* * * * <tr>* * <td><label class="right-align" t:type="label" for="accountLastName" /></td>* * <td><input t:type="textfield" t:id="accountLastName" value="childminderAccount.accountLastName" /></td>* * <td><t:error for="accountLastName" /></td>* * </tr>* * * * <tr>* * <td><label class="right-align" t:type="label" for="accountPassword" /></td>* * <td><input t:type="passwordfield" t:id="accountPassword" value="childminderAccount.accountPassword" t:validate="required" /></td>* * <td><t:error for="accountPassword" /></td>* * </tr>* * * * <tr>* * <td><label class="right-align" t:type="label" for="accountPasswordConfirmation" /></td>* * <td><input t:type="passwordfield" t:id="accountPasswordConfirmation" value="accountPasswordConfirmation" t:validate="required" /></td>* * <td><t:error for="accountPasswordConfirmation" /></td>* * </tr>* * * * <tr>* * <td><label class="right-align" t:type="label" for="accountPostcode" /></td>* * <td><input t:type="textfield" t:id="accountPostcode" maxlength="5" size="10" value="childminderAccount.accountPostcode" t:validate="required" /></td>* * <td><t:error for="accountPostcode" /></td>* * </tr>* * * * <tr>* * <td><label class="right-align" t:type="label" for="childminderStatus" /></td>* * <td><input t:type="select" model="childminderStatusSelectModel" t:id="childminderStatus" value="childminderAccount.childminderstatusID" blankLabel="votre status" blankOption="always"* * t:validate="required" /></td>* * <td><t:error for="childminderStatus" /></td>* * </tr>* * <tr>* * <td><label class="right-align" t:type="label" for="kaptcha" /></td>* * <td><t:kaptchafield t:image="kaptchaImage" t:id="kaptcha" t:validate="required" /></td>* * <td><t:kaptchaimage t:id="kaptchaImage" /> <t:error for="kaptcha" /></td>* * </tr>* * <tr>* * <td><label class="right-align" t:type="label" for="acceptsConditions"/></td>* * <td><input t:id="acceptsConditions" t:type="checkbox"/></td>* * <td><t:error for="acceptsConditions"/></td>* * </tr>* * <tr>* * <td></td>* * <td colspan="2"><input t:type="submit" type="submit" value="message:childminder-registration-submit" /></td>* * </tr>* * * * </table>* * </form>* * * * <t:pagelink page="advertisement/NewAdvertisement">creer nouvelle annonce</t:pagelink>* *</t:childminderlayout>* * * Can anyone please help. I am definitely stuck with this problem... Regards, Julien.