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]

Reply via email to