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

Reply via email to