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.

Reply via email to