This did the trick! Superb, it works just like I want it :) Actually, having 2 network roundtrips for a single requests sounds a little bad doesn't it?
cheers janos 2008/4/30 Filip S. Adamsen <[EMAIL PROTECTED]>: > That's pretty hard to do without some kind of persistence because of the > redirect that happens between the component action and the page render. > > There's of course tapestry.suppress-redirect-from-action-requests, but I > would strongly recommend AGAINST using that. > > http://tapestry.apache.org/tapestry5/tapestry-core/guide/conf.html > > -Filip > > János Jarecsni skrev: > > Hi, > > > > I looked everywhere for usage of request scope variables, but found > > nothing > > (maybe I'm impatient a bit :)... > > Is it really that unrealistic to have two components in a page, one (A) > > having an action link eventhandler where it would set some attribute for > > the > > request only (not the session!) and then component B could render itself > > according to the attribute set by component A? > > > > I think it should be a piece of cake :) > > > > thx > > Janos > > > > 2008/4/30 Filip S. Adamsen <[EMAIL PROTECTED]>: > > > > Nope, you're exactly right. > > > > > > -Filip > > > > > > Blower, Andy skrev: > > > > > > This is not what I understood 'perthread' scope to be. I thought that > > > it > > > > > > > meant that each thread using a service gets its own instance of the > > > > service > > > > to use, even though that instance may not be the same as any > > > > previous > > > > instance it used. In other words, nothing to do with user sessions, > > > > it's > > > > just for services that are not thread safe and cannot be singletons. > > > > > > > > Have I got the wrong end of the stick here? > > > > > > > > -----Original Message----- > > > > > > > > > From: Andy Huhn [mailto:[EMAIL PROTECTED] > > > > > Sent: 29 April 2008 17:34 > > > > > To: Tapestry users > > > > > Subject: Re: page activation + components > > > > > > > > > > > > > > > Hello, > > > > > > > > > > You can define the scope of each service...you can set that > > > > > particular > > > > > service to be tied to only one session. > > > > > > > > > > See http://tapestry.apache.org/tapestry5/tapestry-ioc/service.html > > > > > , > > > > > and > > > > > search for "perthread". > > > > > > > > > > Thanks, > > > > > Andy > > > > > > > > > > On Tue, 29 Apr 2008 18:02:52 +0200, "János Jarecsni" > > > > > <[EMAIL PROTECTED]> wrote: > > > > > > > > > > Hi there, > > > > > > > > > > > > the service approach (as I expected) is session-agnostic (and is > > > > > > page-independent so concurrent users would interfere badly), > > > > > > > > > > > > therefore is > > > > > > > > > > not ok. > > > > > > > > > > > > I will now try the Environment approach... if that is > > > > > > session-aware > > > > > > > > > > > > :) > > > > > > > > > > thx again > > > > > > janos > > > > > > > > > > > > 2008/4/29 János Jarecsni <[EMAIL PROTECTED]>: > > > > > > > > > > > > Hi Chris, > > > > > > > > > > > > > even so you could help :) I want this kind of generic way of > > > > > > > passing > > > > > > > around information (component to component communication :)) > > > > > > > so > > > > > > > I'll > > > > > > > > > > > > > > look > > > > > > > > > > > > for the solutions Kristian and you outlined. > > > > > > > > > > > > > > thanks! > > > > > > > > > > > > > > cheers, > > > > > > > janos > > > > > > > > > > > > > > 2008/4/29 Chris Lewis <[EMAIL PROTECTED]>: > > > > > > > > > > > > > > Janos, > > > > > > > > > > > > > > > Without code or a description of your actual goal, I'm > > > > > > > > finding > > > > > > > > > > > > > > > > your > > > > > > > > > > > > > situation too hypothetical to really digest. The one thing I can > > > > > > > > > > > > > point > > > > > > > > > > > > > out is what you said about wanting a component to set a property > > > > > > > > > > > > > in > > > > > > > > > > > > > the > > > > > > > > > > > > page. If you want to do that, then you have to know the class > > > > > > > of > > > > > > > the > > > > > > > > > > > > > page and so injecting a page would make sense. Of course that > > > > > > > > > > > > > means > > > > > > > > > > > > > tightly coupling a component to a page, which to me doesn't make > > > > > > > > > > > > > sense. > > > > > > > If you simply need a generic way of passing data between pages > > > > > > > and > > > > > > > > > > > > > > > components, consider using a service that provides an > > > > > > > > untyped > > > > > > > > list > > > > > > > > > > > > > > > > or > > > > > > > > > > > > > putting something in the environment as Kristian suggested. I'm > > > > > > > > > > > > > sorry > > > > > > > > > > > > > I > > > > > > > > > > > > can't be more helpful but as I said I'm not clear on what > > > > > > > you're > > > > > > > really > > > > > > > trying to do. > > > > > > > > > > > > > > > good luck > > > > > > > > chris > > > > > > > > > > > > > > > > János Jarecsni wrote: > > > > > > > > > > > > > > > > Hi Chris, > > > > > > > > > > > > > > > > > > I thought of pages as "contexts" for the components > > > > > > > > > embedded > > > > > > > > > > > > > > > > > > within > > > > > > > > > > > > > > > them. > > > > > > > > > > > > > So, in one event handler of a component I would like to set > > > > > > > > > some > > > > > > > > > > > > > > > > > > property or > > > > > > > > > > > > > > > > another (in the page object), and the other components in > > > > > > > > > the > > > > > > > > > > > > > > > > > > page, > > > > > > > > > > > > > > > which > > > > > > > > > > > > > are also able to access this property may change their > > > > > > > > > > > > > > > > > > appearance > > > > > > > > > > > > > > > (say, the > > > > > > > > > > > > > .TML would test the property). Maybe I'm on a wrong track, > > > > > > > > > > > > > > > > > > please > > > > > > > > > > > > > > > let > > > > > > > > > > > > me > > > > > > > > > > > > > > > know :) > > > > > > > > > > > > > > > > > > thx > > > > > > > > > Cheers, > > > > > > > > > janos > > > > > > > > > > > > > > > > > > 2008/4/29 Chris Lewis <[EMAIL PROTECTED]>: > > > > > > > > > > > > > > > > > > > > > > > > > > > Janos, > > > > > > > > > > > > > > > > > > > I'm having a hard time understanding a case that a > > > > > > > > > > component > > > > > > > > > > > > > > > > > > > > should > > > > > > > > > > > > > > > > > know > > > > > > > > > > > > > in which page it is embedded, so my suggestion probably wasn't > > > > > > > > > a > > > > > > > > > > > > > > > > > good > > > > > > > > > > > > one. Activation contexts aren't meant for components but for > > > > > > > > > > > > > > > pages > > > > > > > > > > > > > > > > > - > > > > > > > > > > > > you > > > > > > > > > > > > > > > should be using component parameters to configure them, and > > > > > > > > > if > > > > > > > > > it's > > > > > > > > > > > > > > > > > a > > > > > > > > > > > > more sophisticated component, probably a service. > > > > > > > > > > > > > > > chris > > > > > > > > > > > > > > > > > > > > János Jarecsni wrote: > > > > > > > > > > > > > > > > > > > > and how a component can get to know the page in which > > > > > > > > > > it is > > > > > > > > > > included? I > > > > > > > > > > > > > > > > > > > mean, I can't @InjectPage, as the component will be > > > > > > > > > included > > > > > > > > > > > > > > > > > > > in > > > > > > > > > > > > > > > > > > > many > > > > > > > > > > > > kinds > > > > > > > > > > > > > > > of pages. > > > > > > > > > > > > > > > > > > > > > @Kristian: thx for the many ways :) I'll try these, > > > > > > > > > > > hope > > > > > > > > > > > that > > > > > > > > > > > > > > > > > > > > > > the > > > > > > > > > > > > > > > > > > > @Environmental stuff is scalable (I'm trying to bypass > > > > > > session > > > > > > > > > > > > > creation > > > > > > > > > > > > > > > > > > > as > > > > > > > > > > > > > > > > > > > much as possible) > > > > > > > > > > > > > > > > > > > > > Is there a doc on the various annotations available? > > > > > > > > > > > > > > > > > > > > > > @Michael: > > > > > > > > > > > Could you include a tiny bit of example? THX! > > > > > > > > > > > > > > > > > > > > > > Thx to you all > > > > > > > > > > > cheers > > > > > > > > > > > janos > > > > > > > > > > > > > > > > > > > > > > 2008/4/29 Chris Lewis <[EMAIL PROTECTED]>: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 5) @InjectPage the page and call the getter > > > > > > > > > > > > > > > > > > > > > > > Kristian Marinkovic wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > hi janos, > > > > > > > > > > > > > > > > > > > > > > > > > there are several possibilities: > > > > > > > > > > > > > > > > > > > > > > > > > > 1) declare a component parameter and pass in the > > > > > > > > > > > > > variable > > > > > > > > > > > > > > > > > > > > > > > > > > 2) put it in a ASO and inject the ASO in all your > > > > > > > > > > > > > components > > > > > > > > > > > > > > > > > > > > > > > > > > (using > > > > > > > > > > > > > > > > > > > > > > > @ApplicationState) > > > > > > > > > > > > > > > > > > > the drawback is that any other page or component will > > > > > > > > > > > > > be > > > > > > > > > > > > > > > > > > > > > > > > > > able to > > > > > > > > > > > > > > > > > > > > > > > access > > > > > > > > > > > > > the ASO > > > > > > > > > > > > > > > > > > > > > 3) put it into the Environment and read it whereever > > > > > > > > > > > > > you > > > > > > > > > > > > > > > > > > > > > > > > > > need it > > > > > > > > > > > > > > > > > > > > > > > in > > > > > > > > > > > > > your > > > > > > > > > > > > > > > > > > > nested components. > > > > > > > > > > > > > > > > > > > > > be careful when you put your object in your > > > > > > > > > > > > > environment. if > > > > > > > > > > > > > > > > > > > > > > > > > > you > > > > > > > > > > > > > > > > > > > > > > > put it > > > > > > > > > > > > > in > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > during the action > > > > > > > > > > > > > > > > > > > > > > > > > request it will not be able in the render request > > > > > > > > > > > > > (because > > > > > > > > > > > > > > > > > > > > > > > > > > of > > > > > > > > > > > > > > > > > > > > > > > the > > > > > > > > > > > > page > > > > > > > > > > > > > > > redirect). > > > > > > > > > > > > > > > > > > > page: > > > > > > > > > > > > > > > > > > > > > > > > > > @Inject Environment env; > > > > > > > > > > > > > > > > > > > > > > > > > > @Persist("flash") whateverclass w; > > > > > > > > > > > > > > > > > > > > > > > > > > onActivate(w) { this.w= w } > > > > > > > > > > > > > > > > > > > > > > > > > > setupRender() { env.push(whateverclass.class,w);} > > > > > > > > > > > > > > > > > > > > > > > > > > components: > > > > > > > > > > > > > > > > > > > > > > > > > > @Environmental Whateverclass var; > > > > > > > > > > > > > > > > > > > > > > > > > > 4) define a service that can take this variable > > > > > > > > > > > > > (and > > > > > > > > > > > > > saves > > > > > > > > > > > > > > > > > > > > > > > > > > it > > > > > > > > > > > > > > > > > > > > > > > > > appropriatly > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > so it is not > > > > > > > > > > > > > > > > > > > > > > > > > lost on a redirect:)) and inject your service in > > > > > > > > > > > > > the > > > > > > > > > > > > > > > > > > > > > > > > > > components > > > > > > > > > > > > > > > > > > > > > > > where > > > > > > > > > > > > > needed > > > > > > > > > > > > > > > > > > > to retrieve the value. > > > > > > > > > > > > > > > > > > > > > > > > > > maybe there are some more possibilities :) > > > > > > > > > > > > > > > > > > > > > > > > > > g, > > > > > > > > > > > > > kris > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > "János Jarecsni" <[EMAIL PROTECTED]> > > > > > > > > > > > > > 29.04.2008 08:15 > > > > > > > > > > > > > Bitte antworten an > > > > > > > > > > > > > "Tapestry users" <users@tapestry.apache.org> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > An > > > > > > > > > > > > > "Tapestry users" <users@tapestry.apache.org> > > > > > > > > > > > > > Kopie > > > > > > > > > > > > > > > > > > > > > > > > > > Thema > > > > > > > > > > > > > page activation + components > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hi there, > > > > > > > > > > > > > > > > > > > > > > > > > > I have an activatable page, in its > > > > > > > > > > > > > onActivate(String > > > > > > > > > > > > > param) > > > > > > > > > > > > > > > > > > > > > > > > > > method > > > > > > > > > > > > > > > > > > > > > > > I > > > > > > > > > > > > > > > save > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > the param to a normal instance variable of the page > > > > > > > > > > > > > > > > > > > > > > > > > class > > > > > > > > > > > > > > > > > > > > > > > > > > (no > > > > > > > > > > > > > > > > > > > > > > > persistence!). > > > > > > > > > > > > > How can any component embedded within this page access > > > > > > > > > > > > > this > > > > > > > > > > > > > > > > > > > > > > > > > > variable? > > > > > > > > > > > > > > > > > > > > > > > the page class: > > > > > > > > > > > > > > > > > > > //... > > > > > > > > > > > > > private String param; > > > > > > > > > > > > > > > > > > > > > > > > > > public void onActivate(String param) { > > > > > > > > > > > > > this.param = param; > > > > > > > > > > > > > } > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > public String getParam() {...} > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Thx in advance! > > > > > > > > > > > > > Janos > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > > > > > > > > > > > > > > http://thegodcode.net > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------ > > > > > > > > > > > > > > > > > > > > > > > --- > > > > > > > > > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > For additional commands, e-mail: users- > > > > > > > > > > > > > > > > > > > > > > > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > > > > > > > > > > > > http://thegodcode.net > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > > > > > > > > > > > > > To unsubscribe, e-mail: > > > > > > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > For additional commands, e-mail: > > > > > > > > > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > > > > > > > > http://thegodcode.net > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------ > > > > > > > > > > > > > > > > --- > > > > > > > > > > > > > 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] > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > 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] > >