Em Mon, 08 Jun 2009 19:42:14 -0300, Neo Anderson
<javadeveloper...@yahoo.co.uk> escreveu:
I run the code and request.getAttribute(USER) returns null in dispatch()
function. So I output the Request to see what happens; then notice that
they (Request in Login.java Page and AccessController.java) are two
difference objects.
That's not what I've asked. Anyway, Tapestry uses proxies a lot, so it is
very likely that the two objects are functionally the same.
Now it looks like I can obtain the User data by marking the User object
as SessionState in Login.java Page.
public class Login{
...
@SessionState
private User user;
...
Object onSubmitFromLogin(){
user = new User(...);
}
}
Then retrieve User object from dispatch() in AccessController.java
public boolean dispatch(Request request, Response response) throws
IOException{
...
if(asm.exists(User.class)){
User u = asm.get(User.class);
...
}
}
However, this rise another question for me - is this a recommended way
to obtain a temporary User object (because User object in Login Page is
only constructed temporarily and passed to the backend side for
verification)?
If you'll need that object in a different request, yes.
Why are you using a dispatcher here? I can't see how a dispatcher would be
invoked in the same request after a page was rendered.
Also, how if I have other User object which holds different information
(e.g. User object obtained from database), but needs to exist at the
same time as that temporarily constructed User object? Will the later
override the one that is constructed temporarily (I read Tapestry
website saying if I have the same type marked with SessionState
annotation, they will use the same reference regardless of their
variable name)?
Yes, it will override.
I suggest you to tell use what you're trying to accomplish instead of
asking details of how to do it.
--
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
http://www.arsmachina.com.br/thiago
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org