這是我的Wicket 1.5應用程序的登錄頁面的onSubmit()
方法:檢票setResponsePage
@Override
public void onSubmit() {
super.onSubmit();
User theUser = loginForm.getModelObject();
/* call a DAO function to check the user's credentials */
if(/* DAO call succeeds*/) {
MyCustomeSession authSession = (MyCustomSession)Session.get();
authSession.success("Welcome, " + theUser.getFullName());
setResponsePage(new HomePage());
}
else {
loginForm.error("Username or password was incorrect");
}
}
這工作正常進行初始登錄,並註銷再重新登錄,在接下來的事情見過是歡迎消息的主頁。
一旦會話超時,此應用程序的用戶重定向回此相同的登錄頁面,以反饋消息「您的會話已過期等等,等等」,並允許用戶重新輸入用戶名和密碼。如果用戶這樣做,則登錄成功:隱藏的菜單變爲可見,歡迎消息顯示等。
但是,顯示的頁面仍然是登錄頁面,其中包含所需用戶名和密碼的其他反饋消息(即使兩者都已輸入並且登錄成功)。這裏是一個切出畫面截圖:
這是檢票一些奇怪的事情嗎?有沒有修復或解決方法?
這是出左外野,但你的setResponsePage後需要一個setRedirect(真)()?如果我在6個月內沒有編碼,我應該停止評論。 – jbrookover 2012-04-17 11:55:54
@jbrookover:Wicket的Component類沒有setRedirect這樣的方法。你可能想過一個不同的框架? – cobaltduck 2012-04-17 15:12:16
檢票1.4仍有[Component.setRedirect()](http://wicket.apache.org/apidocs/1.4/org/apache/wicket/Component.html#setRedirect(布爾值)),其可能解釋的混亂。 – Jonik 2012-04-17 17:46:12