i put in the dirty(), but it still doesnt work. i think i'm going to do more
research and look for code examples. the one i followed in Pro Wicket doesnt
seem to be working. if there are any more complete examples and
documentation, please point me to them. i have found the documentation
available at the wicket site disappointing. it might also be just because
i'm not finding the answer to my problem. i just keep looking for examples
of people doing what i'm trying to do and all their code looks like mine. so
i dunno. i'll keep working at it and let everyone know what my mistake was.
thanks,
verbal
On 6/14/07, Johan Compagner <[EMAIL PROTECTED]> wrote:
when you do this:
CSSession session = (CSSession) getSession();
session.setUser(loggedInUser);
then that method:
CSSession.setUser(User)
{
this.user = user;
dirty(); <<< You have to do this here!
}
if you alter your session data you have to call dirty
Then you session wil be stored.
johan
On 6/14/07, verbal evasion <[EMAIL PROTECTED]> wrote:
>
> yeah i got it to work. it wasnt the code, it was some maven weirdness
> that was going on. i have a few more questions. currently, when i login, my
> authentication mechanism tells me that i have successfully logged in, but it
> seems like the session information is not stored?? i have a print in my
> isVisible checks and it always says that the user variable is null. i may be
> returning the incorrect ResponsePage?
>
> // in constructor
> WebMarkupContainer loggedOut = new WebMarkupContainer("loggedOut") {
> public boolean isVisible() {
> boolean rv;
> rv = ((CSSession) getSession()).getUser() == null;
> System.out.println("loggedOut - isVisible? " + rv);
> return rv;
> }
> };
> ...
> WebMarkupContainer loggedIn = new WebMarkupContainer("loggedIn") {
> public boolean isVisible() {
> boolean rv;
> rv = ((CSSession) getSession()).getUser() != null;
> System.out.println("loggedIn - isVisible? " + rv);
>
> return rv;
> }
> };
> // In submit form
> public void onSubmit() {
> String userId = getUserId();
> String password = getPassword();
>
> User loggedInUser = null;
>
> try {
> loggedInUser = UserImpl.authenticate(userId, password);
> // Components can access the Session through
> getSession()
> CSSession session = (CSSession) getSession();
>
> session.setUser(loggedInUser);
> System.out.println("Logged in as " + userId);
> logger.debug("Logged in as " + userId);
> //session.get().info("Logged in as " + userId);
>
> //Index indexPage = new Index(userId, BasePage.this);
> //setResponsePage(indexPage);
> setResponsePage(new Index());
> } catch (AuthenticationException ae) {
> String errMsg = getLocalizer().getString(
> "login.errors.invalidCredentials ", this);
> // Register this message with the form component.
> error(errMsg);
> }
> }
>
> when i keep logging in, it'll say the following:
>
> 20:06:14,806 INFO [STDOUT] loggedOut - isVisible? true
> 20:06:14,806 INFO [STDOUT] loggedIn - isVisible? false
> 20:06:14,810 INFO [STDOUT] loggedOut - isVisible? true
> 20:06:14,810 INFO [STDOUT] loggedOut - isVisible? true
> 20:06:14,811 INFO [STDOUT] loggedOut - isVisible? true
> 20:06:14,811 INFO [STDOUT] loggedIn - isVisible? false
> 20:06:14,813 INFO [STDOUT] loggedIn - isVisible? false
> 20:06:14,814 INFO [STDOUT] loggedOut - isVisible? true
> 20:06:14,814 INFO [STDOUT] loggedOut - isVisible? true
> 20:06:14,815 INFO [STDOUT] loggedOut - isVisible? true
> 20:06:14,815 INFO [STDOUT] loggedOut - isVisible? true
> 20:06:14,816 INFO [STDOUT] loggedIn - isVisible? false
>
> this is for *one* successful login attempt. why is the constructor run
> so many times? also, the output is wrong. what should i be returning as the
> setResponsePage from the onSubmit?
>
> thanks,
>
> verbal
>
>
>
>
> On 6/13/07, Igor Vaynberg < [EMAIL PROTECTED]> wrote:
> >
> > the form is added to loggedout container, also notice that the form
> > tag is inside a div wicket:id="loggedout" so it matches the java hierarchy.
> >
> > -igor
> >
> >
> > On 6/13/07, verbal evasion < [EMAIL PROTECTED]> wrote:
> > >
> > > i tried implementing what you had put and i am stuck because
> > > "loggedin" and "form" are both in the highest scope of the websitem but in
> > > the java code, you have the "form" added to the "loggedin"
> > > WeMarkupContainer. that doesnt seem to fly with wicket unless i'm doing
> > > something wrong. i tried to take out the html for the login form, but that
> > > just doesnt make sense because there will be no corresponding html to
> > > describe what should be in the webcontainer.
> > >
> > > this is my code snippet. thanks in advance.
> > >
> > > /*
> > > * loggedOut - username and password
> > > */
> > > WebMarkupContainer loggedOut = new
> > > WebMarkupContainer("loggedOut") {
> > > public boolean isVisible() {
> > > return ((CSSession) getSession()).getUser() == null;
> > > }
> > > };
> > > TextField userIdField = new TextField("userId",
> > > new PropertyModel(this, "userId"));
> > > PasswordTextField passField = new
> > > PasswordTextField("password",
> > > new PropertyModel(this, "password"));
> > >
> > > Form form = new LoginForm("loginForm");
> > >
> > > add(loggedOut);
> > > loggedOut.add(form);
> > > form.add(userIdField);
> > > form.add(passField);
> > >
> > > /*
> > > * loggedIn - username
> > > */
> > > WebMarkupContainer loggedIn = new
> > > WebMarkupContainer("loggedIn") {
> > > public boolean isVisible() {
> > > return ((CSSession) getSession()).getUser() != null;
> > >
> > > }
> > > };
> > > Label userLabel = new Label("userLabel",
> > > new PropertyModel(this, "userId"));
> > >
> > > add(loggedIn);
> > > loggedIn.add(userLabel);
> > >
> > > ...
> > >
> > > <div wicket:id="loggedIn">
> > > <span wicket:id="userLabel"></span>
> > > </div>
> > > <div wicket:id="loggedOut">
> > > <form wicket:id="loginForm">
> > > User Name <input type="text"
> > > wicket:id="userId"/><br/>
> > > Password <input type="password"
> > > wicket:id="password"/><br/>
> > > <input type="submit" value="Login"/>
> > > </form>
> > > </div>
> > >
> > > On 6/12/07, Eelco Hillenius < [EMAIL PROTECTED]> wrote:
> > > >
> > > > > <html>
> > > > > <body>
> > > > > <div wicket:id="loggedin"><span wicket:id="username"></div>
> > > > > <div wicket:id="loggedout"><form
> > > > > wicket:id="form">...</form></div>
> > > > > ...
> > > > >
> > > > > MyPage() {
> > > > > add(new WebMarkupContainer("loggedin", new
> > > > > PropertyModel(this,"session.user.username")) {
> > > > > public boolean isvisible() { return
> > > > > ((MySession)getSession()).getUser()!=null; }
> > > > > }
> > > > >
> > > > > WebMarkupContainer loggedout=new
> > > > WebMarkupContainer("loggedout") {
> > > > > public boolean isvisible() { return
> > > > > ((MySession)getSession()).getUser()==null; }
> > > > > }
> > > > > add(loggedout);
> > > > > loggedout.add(new Form("form")....
> > > >
> > > >
> > > > That's the first option. The advantage is that it is generally
> > > > easier
> > > > to see what you have on your page. The other option - like shown
> > > > in
> > > > the templates example - is a bit cheaper memory wise, as you only
> > > > add
> > > > what you need.
> > > >
> > > > Eelco
> > > >
> > > >
> > > >
-------------------------------------------------------------------------
> > > > This SF.net email is sponsored by DB2 Express
> > > > Download DB2 Express C - the FREE version of DB2 express and take
> > > > control of your XML. No limits. Just data. Click to get it now.
> > > > http://sourceforge.net/powerbar/db2/
> > > > _______________________________________________
> > > > Wicket-user mailing list
> > > > Wicket-user@lists.sourceforge.net
> > > > https://lists.sourceforge.net/lists/listinfo/wicket-user
> > > >
> > >
> > >
> > >
> > > -------------------------------------------------------------------------
> > > This SF.net email is sponsored by DB2 Express
> > > Download DB2 Express C - the FREE version of DB2 express and take
> > > control of your XML. No limits. Just data. Click to get it now.
> > > http://sourceforge.net/powerbar/db2/
> > > _______________________________________________
> > > Wicket-user mailing list
> > > Wicket-user@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/wicket-user
> > >
> > >
> >
> >
> > -------------------------------------------------------------------------
> > This SF.net email is sponsored by DB2 Express
> > Download DB2 Express C - the FREE version of DB2 express and take
> > control of your XML. No limits. Just data. Click to get it now.
> > http://sourceforge.net/powerbar/db2/
> > _______________________________________________
> > Wicket-user mailing list
> > Wicket-user@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wicket-user
> >
> >
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>
>
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user