Honestly it's difficult for me to imagine a situation where I'd do that
because it seems to violate a degree of encapsulation that tapestry
imposes as a "freeing law" of the framework. The epicenter of that being
that one should not think in terms of low-level idioms such as request
parameters, and instead replace those with a higher level of application
logic that eclipses them entirely (when possible). That's not to say
that your perspective is flawed, but from the small bit of understanding
I've taken from your posts I can't see why one would do what you want.
The thing that I've been saying is missing here is, what are you trying
to do? I don't mean technically, I mean what is the end result for the
user? Understanding this is critical, but even if I don't your problem
can still be solved by using a session to serve as an arbitrary holder.
If you've settled on this architecture, why not write such a generic
service and move on?

János Jarecsni wrote:
> 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]
>>
>>
>>     

-- 
http://thegodcode.net


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to