gpt4 book ai didi

java - Wicket 6 !continueToOriginalDestination : operator ! 未定义

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:48:32 26 4
gpt4 key购买 nike

情况

我正在将项目从 Wicket 1.5.7 迁移到 Wicket 6.12,下面解释了我遇到的错误之一。

代码

    @Override
protected void onSubmit() {
final String usernameValue = mail.getModelObject();
//Password is left empty in this particular case
AuthenticatedWebSession.get().signIn(usernameValue,"");
if (!continueToOriginalDestination())
{
setResponsePage(getApplication().getHomePage());
}
}

错误

This is the error I got when changing wicket versions: The operator ! is undefined for the argument type(s) void

注意:当鼠标悬停在 !continueToOriginalDestination

上时,我看到了这个错误

我尝试了什么

在我对 stackoverflow 的搜索中,我遇到了这个问题: continueToOriginalDestination does not bring me back to originating page

还在 apache wicket 上检查了这个主题: http://apache-wicket.1842946.n4.nabble.com/Handling-ReplaceHandlerException-on-continueToOriginalDestination-in-wicket-1-5-td4101981.html#a4115437

所以我将代码更改为:

    @Override
public void onSubmit() {
final String usernameValue = mail.getModelObject();
AuthenticatedWebSession.get().signIn(usernameValue,"");
setResponsePage(getApplication().getHomePage());
throw new RestartResponseAtInterceptPageException(SignInPage.class);
}

问题

旧情况和代码更改似乎都适用于我的特定情况。

  • 也许这是一个小改动,我的新代码有错吗,这应该如何工作?
  • Wicket 是否更改了那么多,以至于不再支持旧代码,还是可以使用 !continueToOriginalDestination

最佳答案

这有帮助

http://www.skybert.net/java/wicket/changes-in-wicket-after-1.5/

在 1.5 中,您可以执行以下操作来中断一个页面的呈现,转到另一个页面(如登录页面),然后将用户发送回他/她所在的位置:

  public class BuyProductPage extends WebPage {
public BuyProductPage() {
User user = session.getLoggedInUser();
if (user null) {
throw new RestartResponseAtInterceptPageException(LoginPage.class);
}
}
}

然后在 LoginPage.java 中,在用户登录后将其重定向回 BuyProductPage:

  public class LoginPage extends WebPage {
public LoginPage() {
// first, login the user, then check were to send him/her:
if (!continueToOriginalDestination()) {
// redirect the user to the default page.
setResponsePage(HomePage.class);
}
}
}

方法 continueToOriginalDestination 在 Wicket 6 中发生了变化,它现在是空的,这让你的代码看起来更神奇而不符合逻辑 IMO:

  public class LoginPage extends WebPage {
public LoginPage() {
// first, login the user, then check were to send him/her:
continueToOriginalDestination();
// Magic! If we get this far, it means that we should redirect the
// to the default page.
setResponsePage(HomePage.class);
}
}

关于java - Wicket 6 !continueToOriginalDestination : operator ! 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19925858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com