我正在嘗試登錄到我的應用程序。首先,我扔RestartResponseAtInterceptPageException(這是一個WicketPanel我BasePage的):continueToOriginalDestination不會將我帶回原始頁面
add(new Link<String>("signin") {
@Override
public void onClick() {
throw new RestartResponseAtInterceptPageException(SignIn.class);
}
});
的登錄頁面類包含在符號的形式(內部私有類),用下面的提交按鈕:
add(new Button("signinButton") {
@Override
public void onSubmit() {
final User user = model.getObject();
final boolean result = MySession.get().authenticate(user);
if (result) {
if (!continueToOriginalDestination()) {
setResponsePage(MySession.get().getApplication().getHomePage());
}
} else {
error("Authentication failed");
}
}
});
單擊此按鈕併成功驗證用戶身份後,我沒有重定向到單擊SignIn鏈接的頁面,而是停留在SignIn頁面上?我試過調試過這個,但一直沒有找到出錯的地方。
我很高興任何提示,導致我發現我的方式錯誤。
順便提一下,這是wicket 1.5.1。
小更新因爲我從答案中得到了我需要的提示,所以仍然有一些解釋要做。該解決方案是這樣的:
add(new Link<String>("signin") {
@Override
public void onClick() {
setResponsePage(new SignIn(getPage()));
}
的簽到類獲取一個構造函數,顯然需要一個網頁,我只是設置頁與setResponsePage回到那裏,我開始沒有所有的continueToOriginalDestination和異常拋出。
});
嘗試實施了'onSubmit'法的形式,而不是在按鈕內。 – rotsch
好主意,從來沒有想過它。儘管如此,它並沒有解決問題。但有了bernies提示,我找到了一個解決方案。謝謝。 – Yashima