On Tuesday 12 December 2006 13:36, Andreas Andreou wrote: > >> I have noticed that the PageValidationListener for the old page is > >> always called when submitting a form, even when the form submission > >> listener redirects to a different page. Sometimes this failed in my > >> project. > > Why exactly does it fail?
It fails because the form does not include some parameters which are required for the page. The page validation listener throws a redirect exception when these parameters are not set. Let me further explain what I am doing -> Some pages in my application are area dependent, i.e. a parameter area is required for accessing these pages. I need the area as a real parameter in the URL, because I use a FriendlyURL filter to make URLs like mysite.com/hamburg/index.html, mysite.com/london/index.html etc. That's why I do not persist the area. Now when I use a form on one of my area pages which redirects to a non-area dependent page, then I do not include the area name as part of the form. In these cases my PageValidation listener jumps in and redirects me to an error page. > Well, tapestry doesn't really know that you're to do a RAP. And even if > it did, > the PageValidationListener should still be called - perhaps the user > doesn't have permission > to submit the form - how would you capture this? But I cannot capture this with the PageValidationListener either, because it does not tell me whether a form was submitted or just the page was accessed normally. > And anyway, this is standard documented behavior of page and direct > services. > Howard's "Tapestry in Actions" contains several sequence diagrams that > explain the > process, i.e. when PageValidationListeners and PageBeginRenderListeners > are called Then it's perhaps a wording issue. The name "PageBeginRenderListener" implies to me that it is called when a page is to be rendered. But in case of RAP, no page is going to be rendered after the first request. > Why exactly don't they work? Are you persisting them somehow? > You have to keep in mind that a RAP actually does a 2nd request , which > means > that unless you persist stuff, they're going to be gone after the 1st > submit. Yes, I am using the @Persist("session") annotation. Adding validators to the form text fields simply has no effect. The values are always accepted. > That's where the tapestry-flash can help - so that you get minimum > session usage. Yes, I am using that for rendering some error messages, so that they disappear after the next action. -- Bastian Voigt Neumünstersche Straße 4 20251 Hamburg mobil 0179/4826359 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]