Hi,

You should not keep references to other page instances.
Instead pass IPageReference: page.getPageReference().
Later you can do:
MyPage page = (MyPage) pageRef.getPage();
page.setXyz();


But in your case I think you should use the Session. If the login is
successful then bind a session and set the flag. Then redirect to LoginPage
and in its constructor check whether there is a session, and whether the
flag is set and  redirect to the post-login page.



On Tue, May 7, 2013 at 4:03 AM, smallufo <[email protected]> wrote:

> I have a LoginModal which binds a LoginPage .
>
> In LoginModal.setWindowClosedCallback() method , I use
> LoginPage.isSuccessful() to judge if the user login successful.
> If login successful , I refresh the page , or do nothing.
>
> LoginModal code : http://pastebin.com/nLU2akzV
> LoginPage code : http://pastebin.com/PqfLwsNg
>
> It works in wicket 1.4 , but failed in wicket 6
>
> In LoginPage , I can see user correctly login , and the "successful = true"
> is set.
> But LoginModal can only see the old successful value (which is FALSE).
> No matter I read the property (isSuccessful() ) or through reflection
> PropertyModel :
> boolean successful = (new PropertyModel<Boolean>(loginPage, "successful")).
> getObject().booleanValue();
>
> It just returns FALSE.
>
> I notice it may be page serialization problem introduced in wicket 1.5 .
> My page has an integer attached , such as /app/?1 , no matter how I refresh
> the page , I just see the LoginPage's isSuccessful is FALSE.
> But if I manually browse /app/ (no trailing integer) , the user is logged
> in. (I set something in the httpSession in LoginPage)
>
> I searched the maillist , try to override *isVersioned() and return false*,
> but everything is the same....
>
> How to solve the problem , making LoginModal able to see LoginPage's latest
> property ?
>
> Thanks !
>



-- 
Martin Grigorov
Wicket Training & Consulting
http://jWeekend.com <http://jweekend.com/>

Reply via email to