Hi, thanks for the clarifications. > If these values are used in the initial page rendering, as it's the case here, > you don't need to @Persist them at all. The values of the fields will be kept > until the request is finished.
(Just a detail) I was thinking @Persist because if I had to calculate all the values in the setupRender method then I wouldn't want to recalculate them all every time setupRender is called again (for ex. when an event handler in the page returns the page itself). >> Plus I don't know if one can update a zone from the setupRender method. > It makes absolutely no sense to do that, as I already explained above, > because zones are not meant to be updated during the page rendering. Got it, thanks. >> they show how to update a zone in response to a user's action (clicking >> on a link or button) while in my case I need to update a zone in >> response to "nothing" - that is, in response to an error occurred during >> the initial page loading, before any possible user's action. > That's the whole point: you don't need AJAX nor zones for that. A zone is > meant to be updated after the initial page loading, usually by user > action, but also possibly by some timer. This makes a lot of sense too, however in my real case (not the example) I need to have a zone for the error messages, because I use it to show errors that might occur when the user does something after the page is rendered. So I was trying to update that same zone also for errors that occur during page rendering. So I have to think of a way to update a zone when I detect an error during page rendering. I will try setting some flag if I detect an error during page rendering, and then check that flag in some method that Tapestry calls when the rendering is complete and from which it's possible to update a zone. Based on my understanding of the jumpstart demo "What is Called and When" (http://jumpstart.doublenegative.com.au/jumpstart/examples/navigation/whatiscalledandwhen), I suppose that such a method might be afterRender() or cleanupRender() or pageDetached() . I'm just not sure I can update a zone from one of those methods, I'll try and see.