如何在PageLoad上打开ModalDialog

son*_*fon 9 java wicket modal-dialog

我怎样才能打开一个模态对话框PageLoad(),在的构造WebPage和没有AjaxRequestTarget,使用Wicket?

tet*_*suo 11

我无法找到一个方法来打开它没有一个Ajax请求,但它是完全可能的,当加载页面时打开它,用一个简单的行为:

HomePage.java

public class HomePage extends WebPage {
    public HomePage(PageParameters pageParameters) {
        super(pageParameters);

        ModalWindow modal = new ModalWindow("modal");
        modal.add(new OpenWindowOnLoadBehavior());
        modal.setPageCreator(new ModalWindow.PageCreator() {
            @Override
            public Page createPage() {
                return new RedirectPage("http://www.google.com");
            }
        });
        add(modal);
    }
}
Run Code Online (Sandbox Code Playgroud)

OpenWindowOnLoadBehavior.java

public class OpenWindowOnLoadBehavior extends AbstractDefaultAjaxBehavior {
    @Override
    protected void respond(AjaxRequestTarget target) {
        ModalWindow window = (ModalWindow) getComponent();
        window.show(target);
    }
    @Override
    public void renderHead(IHeaderResponse response) {
        response.renderOnLoadJavascript(getCallbackScript().toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

HomePage.html

<html xmlns:wicket="http://wicket.apache.org">
<body>
  <div wicket:id="modal"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)