For the record, you CAN reassign an ASO (eg. curruser = u). Don't
know what I was thinking. Sorry if I misled anyone.
Cheers,
Geoff
On 03/09/2008, at 9:44 PM, Geoff Callender wrote:
Fernando's right. Your field curruser starts out as an ASO but if
you reassign it (eg. curruser = u) then it becomes something else
which is not an ASO.
Your code looks like it's a mod of JumpStart, but JumpStart actually
does the same kind of thing Fernando's saying:
@ApplicationState
private Visit _visit;
private boolean _visitExists;
<snipped>
User user = getSecurityFinderService().authenticateUser(_loginId,
_password);
// Store the user in the Visit
_visit.noteLogIn(user);
and Visit then sets its fields based on the user. That way it
remains an ASO.
public void noteLogIn(User user) {
_loggedIn = true;
_myUserId = user.getId();
_myLoginId = user.getLoginId();
}
HTH,
Geoff
On 03/09/2008, at 7:24 PM, Fernando Padilla wrote:
Also, i thought you were to think of an ASO almost as a singleton
or a service. Tapestry will create it for you on first access. I
didn't know you could set it. Even if I'm wrong, using this design
pattern might clean things up a little.
So you should use another class to contain a reference to the
current active user, call it "UserContainer".
@AplicationState
private UserContainer currUser;
and it would have methods like:
currUser.hasUser()
currUser.setUser(User user)
currUser.getUser()
or whatever you like.
José Paumard wrote:
Natia,
I think there is a mistake in your code :
private User currUser ;
private boolean userExists ;
I dont think T5 will link userExists and currUser, currUser should
be named user, or userExists currUserExists (please correct me if
I'm wrong).
That said, what do you mean "I cant access currUser", do you mean
that the ASO is null in other classes that want to read it ? Or do
you mean that userExists is always false (which is normal, see
above).
José
Natia Gdzelishvili a écrit :
I'm using tapestry 5.0.14 ,i vahe problem with aso, my code is:
public class Login {
private String username;
private String password;
@Inject
private IBusinessServicesLocator _businessServicesLocator;
@ApplicationState
private User currUser;
private boolean userExists;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@SuppressWarnings("unchecked")
@OnEvent(value = "submit", component = "loginForm")
public Object submitLoginForm() {
Class nextPage;
try {
User u=getMerchantCreator().login(username,
password); //*returns
some object*
currUser = u; /*/ currUser object cannot be resolved*
nextPage = ViewAllMerchants.class;
} catch (UserNotFoundException e) {
nextPage = Login.class;
e.printStackTrace();
}
return nextPage;
}
private IMerchantCreatorLocal getMerchantCreator() {
return _businessServicesLocator.getMerchantCreatorLocal();
}
}
i cannot access curruser...
please help..
---------------------------------------------------------------------
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]