Java Vaadin中当前UI的访问方法
我目前正在Vaadin开发一个Java Web应用程序 我想从另一个类访问位于LoginUI中的getter方法 getCurrent()成功返回当前线程(LoginUI) 我需要调用哪些方法来实现这一点 提前感谢。UI.getCurrent()不是线程安全的。相反,我建议您使用以下模式Java Vaadin中当前UI的访问方法,java,multithreading,vaadin,Java,Multithreading,Vaadin,我目前正在Vaadin开发一个Java Web应用程序 我想从另一个类访问位于LoginUI中的getter方法 getCurrent()成功返回当前线程(LoginUI) 我需要调用哪些方法来实现这一点 提前感谢。UI.getCurrent()不是线程安全的。相反,我建议您使用以下模式 public class MyView extends VerticalLayout implements View { private UI ui; @Override publi
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()
这是一个经常被问到的话题,这里也有关于同样事情的更具体的案例问题