Я пытаюсь войти в свое приложение. Сначала я выбрасываю исключение RestartResponseAtInterceptPageException (это есть в WicketPanel на моей BasePage):
add(new Link<String>("signin") {
@Override
public void onClick() {
throw new RestartResponseAtInterceptPageException(SignIn.class);
}
});
Класс SignIn Page содержит форму (внутренний закрытый класс) для входа со следующей кнопкой отправки:
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");
}
}
});
Когда эта кнопка нажата, и пользователь успешно аутентифицирован, я не перенаправлен на страницу, на которой щелкнул ссылку входа, но вместо этого я остаюсь на странице входа? Я пытался отладить это, но не смог выяснить, где что-то пошло не так.
Я рад любым подсказкам, которые приводят к тому, что я нахожу ошибку своих путей.
Кстати, это калитка 1.5.1.
Небольшое обновление , так как я получил подсказку, в которой я нуждался из ответа, все еще есть немного объяснений, которые нужно сделать. Решение выглядит так:
add(new Link<String>("signin") {
@Override
public void onClick() {
setResponsePage(new SignIn(getPage()));
}
});
Класс SignIn получает конструктор, который явно занимает страницу, и я просто устанавливаю эту страницу как setResponsePage, чтобы вернуться туда, где я начал, без всех continueToOriginalDestination и выброса исключений.