...
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 \[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 Wiki Markup