これはonSubmit()
私のWicket1.5アプリケーションのログインページの方法です。
@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");
}
}
これは、最初のログイン、およびログアウトしてから再度ログインする場合に正常に機能します。次に表示されるのは、ウェルカムメッセージのあるホームページです。
セッションがタイムアウトすると、このアプリケーションはユーザーをこの同じログインページにリダイレクトし、「セッションの有効期限が切れました」というフィードバックメッセージを表示して、ユーザーがユーザー名とパスワードを再度入力できるようにします。ユーザーがこれを行うと、ログインは成功します。非表示にされたメニューが表示され、ウェルカムメッセージが表示されます。
ただし、表示されるページはログインページのままで、必要なユーザー名とパスワードに関する追加のフィードバックメッセージが表示されます(両方が入力され、ログインが成功した場合でも)。これがクリップされたスクリーンショットです:
これはWicketの奇妙なことですか?修正または回避策はありますか?