首页 > 解决方案 > 使用 vaadin Page.getCurrent().open() 方法时有没有办法传递参数?

问题描述

我正在尝试打开一个窗口或弹出窗口并将一些值传递给它。我想用参数发布。

我目前正在使用 vaadin 7.7.6,com.vaadin.server.Page.getCurrent().open() 在新的浏览器窗口中打开 url,不知道如何传递值,也可以它弹出而不是打开新的浏览器窗口


    private PNativeButton button()
    {
        if (button== null)
        {
            button= new button("Press Me");
            button.getNativeButton().setHeight(36, Unit.PIXELS);
            button.setEnabled(true);
            button.addClickListener(new ClickListener()
            {
                @Override
                public void buttonClick(ClickEvent event)
                {
                    getCurrent().open("https://stackoverflow.com/", "Pressed", 100, 100, BorderStyle.DEFAULT);
                }
            });
        }
        return button;
    }

我期待一个新的弹出窗口,它使用某些参数发布 url。

标签: javavaadin

解决方案


您可以扩展 Window 类并向其添加一些附加参数。例如:

class MySub extends Window {
    private String message;

    public MySub() {
        super("Sub Window");
        center();
    }

    public void initContent() {
       setContent(new Button(message, event -> close()));
    }

    public void setMessage(String message) {
        this.message = message;
   }
}

并将其用于您的 UI

public static class SubWindowUI extends UI {
    @Override
    protected void init(VaadinRequest request) {
        MySub mySub = new MySub();
        mySub.setMessage("Close me !");
        mySub.initContent();

        addWindow(subWindow); // Open it in the UI
    }
}

推荐阅读