Vaadin中当前UI的访问方法

Access method from current UI in Vaadin

我目前正在使用 Vaadin 开发 Java Web 应用程序。

我想从另一个 class.getter 访问位于我的 LoginUI 中的方法。

UI.getCurrent() 成功 returns 当前线程 (LoginUI)。

需要调用哪些方法来实现?

提前致谢。

UI.getCurrent() 不是线程安全的。相反,我向您推荐以下模式。

public class MyView extends VerticalLayout implements View {

    private UI ui;

    @Override
    public onAttach() {
        ui = getUI();
        ...
    }

...

    public updateMe(..) {
        ...
        try {
           ui.access( ... do updates ... );
        } catch (UIDetachedException e) {
           // Do nothing, this exception is thrown if Browser is closed
        }
    }
}

已解释。附加视图时存储 UI 引用。并编写一个方法来根据需要在 ui.access() 那里更新视图。调用此方法进行更新,而不是在线程中执行 UI.getCurrent()。

这是一个常见问题,这里还有关于同一件事的更具体的案例问题