Add the following to your corresponding WebPage...
Code Block |
---|
... Link logoutLink = new Link("my-link-wicket-id") { public void onClick() { getSession().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().setRequestTarget(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