Wicket 9.0 无法弄清楚如何重定向到其他页面

Wicket 9.0 can't figure out how to redirect to other page

如何从 onEvent(String event) 方法重定向到其他 wicket 页面?

我尝试过的所有内容都被注释掉了,到目前为止似乎没有任何效果,尝试使用 mountPage 方法安装页面,但没有任何变化。事件是否可以从 ajaxBehavior 重定向到其他页面?

import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.request.cycle.RequestCycle;

public class SignInPage extends WebPage {
    private String username;
    private String password;

    public SignInPage() {

        TextField<String> username = new TextField<>("username");
        TextField<String> password = new TextField<>("password");
        Button button = new Button("button");
        AjaxEventBehavior onClick = new AjaxEventBehavior("click") {
            @Override
            protected void onEvent(AjaxRequestTarget ajaxRequestTarget) {
                System.out.println("inside on event");
                RequestCycle res = RequestCycle.get();
                res.setResponsePage(HomePage.class);
                RequestCycle.get().getRequestHandlerScheduledAfterCurrent().respond(res);
                //return new RenderPageRequestHandler(new PageProvider(HomePage.class), RenderPageRequestHandler.RedirectPolicy.ALWAYS_REDIRECT);
                //getRequestCycle().setResponsePage(HomePage.class);
                //getRequestCycle().getRequestHandlerScheduledAfterCurrent().respond(getRequestCycle());
                //setRedirect// not available
                //getRequestCycle().setRdirect()// not available
                //getRequestCycle().setResponsePage(HomePage.class);//setResponsePage(HomePage.class);
/*                redirectToInterceptPage(new HomePage());
                ajaxRequestTarget.respond(getRequestCycle());*/
            }
        };

        button.add(onClick);
        add(username);
        add(password);
        add(button);
    }
}

一段时间后,我意识到这是授权问题,并且重定向按照此代码工作(我使用了与 HomePage.java 上定义的角色不同的角色。

@AuthorizeInstantiation("USER"), but the role after signing was @AuthorizeInstantiation("ADMIN"))

import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.request.cycle.RequestCycle;

public class SignInPage extends WebPage {
    private String username;
    private String password;

    public SignInPage() {

        TextField<String> username = new TextField<>("username");
        TextField<String> password = new TextField<>("password");
        Button button = new Button("button");
        AjaxEventBehavior onClick = new AjaxEventBehavior("click") {
            @Override
            protected void onEvent(AjaxRequestTarget ajaxRequestTarget) {
                System.out.println("inside on event");
                setResponsePage(HomePage.class);
            }
        };

        button.add(onClick);
        add(username);
        add(password);
        add(button);
    }
}