a short sample public class UserASO<USER extends IUser> { private USER userEntity; private Logger logger;
public UserASO(final Logger logger) { this.logger = logger; logger.info("UserASO created"); } public USER getUserEntity() { return userEntity; } public void setUserEntity(USER userEntity) { this.userEntity = userEntity; } public boolean isLoggedIn() { return getUserEntity() != null; } } public static void contributeASOs(final Logger logger, @InjectService("Request")Request request, MappedConfiguration<Class, ApplicationStateContribution> configuration) { ApplicationStateCreator<UserASO> creator = new ApplicationStateCreator<UserASO>() { public UserASO create() { return new VisitStateObject<User>(logger); } }; configuration.add(UserASO.class, new ApplicationStateContribution("session", creator)); } @ApplicationState private UserASO userASO; userASO.setUser(yourUserObject); 2008/9/3 Sven Homburg <[EMAIL PROTECTED]> > the aso created internal by tapestry > you should not create the object by youself > > aso should used as container > > 2008/9/3 Natia Gdzelishvili <[EMAIL PROTECTED]> > > I'm not using userExists, >> in tapestry 5.0.9 everything was working, i was doing the same >> >> On Wed, Sep 3, 2008 at 1:24 PM, Fernando Padilla <[EMAIL PROTECTED]> >> 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] >> > >> > >> > > > > -- > with regards > Sven Homburg > http://www.chenillekit.org > http://tapestry5-components.googlecode.com > > -- with regards Sven Homburg http://www.chenillekit.org http://tapestry5-components.googlecode.com