Nope. Does not work as the pageBeginRender methods of the components are not called in a specific order (see the gotchas section on the WIKI). In fact the pageBeginRender method of component B is called before the pageBeginRender method of component A which means that the list property of component B is not yet set by component A.
It seems to me that I use the framework fundamentaly wrong in this case. But I can't see a possibility how to solve this problem properly with tapestry. markus On 10/6/05, Peter Ertl <[EMAIL PROTECTED]> wrote: > try the 'begin page render' event > > it's after properties have been set up, still modifiable, > and just before rendering of the components start > > in T4: > > implement PageBeginRenderListener in your page > > in T3: > > implement PageRenderListener in your page > > > > > --- Ursprüngliche Nachricht --- > > Von: Markus Joschko <[EMAIL PROTECTED]> > > An: [email protected] > > Betreff: Where should a property be processed .. > > Datum: Thu, 6 Oct 2005 17:22:20 +0200 > > > > Hi list, > > maybe you can help me with a "property" problem. > > I have a parent component A which fetches a lot of information from a > > webservice in its prepareForRender method. One part of the > > information is a list which should be passed as a parameter to > > component B which is nested inside of component A. > > This is easy, now for the problematic part: component B processes the > > list and stores some of the values in a persistant property. At least > > that is the plan. > > I have troubles finding the right place to process this list. Doing > > this in the renderComponent method of component B fails, because it is > > not allowed to modify persistant properties during render. Using the > > pageBeginRender method of component B also fails because there is no > > specific order in which the pageBeginRender methods are called and > > therefore component B can be called before component A and the > > parameter which should hold the list is empty. > > > > Is there a workaround? I could for sure process the list in component > > A instead of component B but this moves logic into component A which > > simply does not belong there. Or I could do a second webservice > > request in component B to retrieve the list in its pageBeginRender. > > But then I have two remote hits which I really want to avoid. > > > > Any ideas? > > Thanks, > > Markus > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
