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

Reply via email to