私の Wicket 1.5 Web アプリケーションでは、元のページの URL はそのままにしておく必要がありますが、別のブックマーク可能なページにリダイレクトしたいと考えています。
@MountPath(value="page1")
public class WebPage1 extends WebPage {
public WebPage1() {
...
if (!isDisplayable()) {
setResponsePage(WebPage2.class);
// throw new RestartResponseException(Error404WebPage.class);
// throw new RestartResponseAtInterceptPageException(Error404WebPage.class);
}
}
private boolean isDisplayable() {
boolean flag = ...
...
return flag;
}
}
@MountPath(value="page2")
public class WebPage2 extends WebPage {
public WebPage2() {
}
public WebPage2(PageParameters params) {
}
}
setResponsePage(..)、throw new RestartResponseException(..)、または throw new RestartResponseAtInterceptPageException(..) を使用したアプローチのいずれも、URL を変更しません。3 つの方法はすべて Page2 にリダイレクトし、ブラウザのアドレス バーに表示される URLを変更します。