我正在尝试登录到我的应用程序。首先,我扔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