THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block |
---|
... Link logoutLink = new Link("my-link-wicket-id") { public void onClick() { // you can use "getSession().invalidateNow();" if you want to remove all wicket components from the sessiongetSession().invalidate(); getRequestCycle().setRedirect(true); setResponsePage(WhereEverYouWantToRedirect.class); [1] } }; ... |
You can also redirect before a page renders:
Code Block |
---|
...
@Override
protected void onBeforeRender() {
super.onBeforeRender();
getRequestCycle().setRedirect(true);
throw new RestartResponseException(WhereEverYouWantToRedirect.class);
}
...
|
If you need to redirect to an external webpage...
Code Block |
---|
... Link logoutLink = new Link("my-link-wicket-id") { public void onClick() { getSession().invalidate(); getRequestCycle().setRedirect(true); setResponsePage(WhereEverYouWantToRedirect.classsetRequestTarget(new RedirectRequestTarget("http://www.another-web-site.com") ); } }; ... |
[1] it is important to use setResponsePage() variant that takes a page class and not a page instance because a page instance would be stored in session that is now marked for invalidation - thus resulting in a page expired error