我目前正在 Vaadin 开发 Java Web 应用程序。
我想从另一个类访问位于我的 LoginUI 中的 getter 方法。
UI.getCurrent() 成功返回当前线程 (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() 。
这是经常被问到的话题,这里还有关于同一件事的更具体的案例问题vaadin 10 - 推送 - 标签不会更新 https://stackoverflow.com/questions/51975976/vaadin-10-push-label-wont-update/51978235#51978235
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)