Vaadin 中当前 UI 的访问方法

2024-01-07

我目前正在 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(使用前将#替换为@)

Vaadin 中当前 UI 的访问方法 的相关文章

随机推荐

  • Twitter 超出了 Google 应用引擎的速率限制

    我正在使用谷歌应用程序引擎 并且想从给定用户下载推文 我只是简单地打电话http api twitter com 1 statuses user timeline USERNAME json http api twitter com 1 s
  • 简单的客户端文件处理,无需刷新

    什么叫干净简单JavaScript以下用例的解决方案 在网页上 用户从本地文件系统选择并上传文本文件 但客户端 JavaScript 代码不是将文件加载到服务器 而是打开并处理文件内容 并将结果写入同一页面无需刷新页面 注意 我不需要保留文
  • 无法在 Facebook ios SDK 中获取登录者的电子邮件 ID

    我正在开发一个 Facebook IOS 应用程序 从 Facebook 获取用户数据 公共资料 电子邮件 实施登录过程后 我能够获取用户的名字 姓氏和个人资料图片的 url 但我收到的电子邮件一片空白 我已经通过了获取公开个人资料和 Em
  • iOS 通过代码将默认键盘从 ABC 模式切换到 123 模式?

    我可以通过以下方式了解如何设置键盘的整体类型 self myTextView keyboardType UIKeyboardTypeDefault 如何通过代码将默认键盘模式从 ABC 切换到 123 并再次切换回来 基本上 当用户点击 字
  • scala protected 修饰符转换为 java 类是 public

    在 scala 类中 我定义了一个受保护的字段和一个受保护的方法 TestProtected scala class TestProtected protected var f 0 protected def m 1 在我看来 它将把受保护
  • 将表从 .sql 复制到 .db 文件。艰难地学习 SQL

    我很确定对此有一个简单的答案 但我在任何地方都找不到它 而且似乎自己也无法弄清楚 任何帮助将不胜感激 我正在尝试从 a 复制一个表 sql file ex1 sql 其中有一个基本表 我可以毫无问题地创建这个 但是然后我运行以下命令将此表复
  • 此外,使用现有身份验证对作为 Azure WebApp 托管的 ASP.NET Core MVC 网站进行密码保护

    我有一个带有 ASP NET Core Identity 的现有 ASP NET Core MVC 应用程序 其中我使用了以下组合signInManager PasswordSignInAsync and Authorize 强制用户登录网
  • 如何通过 1 的位置列表解码 0 和 1 的列表?

    我想创建一个List Int 仅包含 0 和 1 数组中定义的 0 和 1 的位置 val bitMask List 2 5 6 11 621 655 bitMask 是结果列表中位置一的列表 结果列表中的项目为零 结果我想得到 resul
  • Python PyEphem 计算方位角和高度

    我是 PyEphem 的新手 我正在尝试弄清楚它可以做什么以及它是如何工作的 由于我不想将其用作黑匣子并盲目相信我得到的任何数字 因此我想重新创建一个解释的示例here http www stargazing net kepler alta
  • 停止读取 Python 中的进程输出而不挂起?

    我有一个适用于 Linux 的 Python 程序 几乎看起来像这样 import os import time process os popen top readlines time sleep 1 os popen killall to
  • 使用 PagedList 和成员资格

    我一直在玩 Troy Goode 的 PagedListhttp pagedlist codeplex com http pagedlist codeplex com 我想知道是否有人已经让它与内置的 asp net 会员部分一起工作 我有
  • 将焦点设置在 xaml wpf 中的文本框上

    尽管这个论坛和其他论坛上有一些帖子 但我找不到一些东西来告诉我如何将焦点放在TextBox 我有一个带有许多标签和文本框的用户控件 加载表单时 我希望特定的文本框具有焦点 我已经设置了 tabIndex 但这似乎不起作用 有什么建议么 您可
  • Symfony 2 中的中间路由可选参数

    需要解决的问题 在 Symfony 2 中是否可以用 定义路由中间的 可选参数 我将使用其他问题数据 https stackoverflow com questions 17059843 routing in symfony2 option
  • ASP.NET MVC:动作过滤器设置控制器变量?

    我有一个场景 对于每个页面请求 我都必须检查会话是否存在特定 ID 如果发现这一点 我必须从数据库中获取相关对象并将其提供给控制器 如果找不到会话 ID 我需要重定向用户 会话已过期 目前 我有一个自定义代码块 几行 它在控制器内的每个操作
  • 防止在插件中创建

    我在服务活动的预创建上注册了一个插件 在插件中 我检查一些条件 如果满足这些条件 我想停止创建服务活动 我想创建另外两个服务活动来代替该服务活动 但我不希望用户收到这一切的通知 有没有办法停止在 CRM 2011 上的插件中创建 SA 记录
  • 如何将 UUID 转换为 base64?

    我想打字UUID并将其输出到Base64编码格式 但是考虑到输入方法Base64并输出UUID如何实现这一点似乎并不明显 update虽然对于我的用例来说不是明确的要求 但最好知道所使用的方法是否使用 UUID 的原始 UUID UUID
  • 使用相同的 docker 映像部署多个 Cloud Run 服务

    有超过 25 个 Cloudrun 服务使用相同的 docker 镜像 来自 GCR 但配置了不同的变量 有什么简单可靠的方法可以使用来自任何类型传入事件的最新容器映像来部署所有服务 目前使用下面的CLI命令来手动执行一一执行 有没有一种自
  • java子类的私有final字段可以在超级构造函数完成之前初始化吗?

    我有一对像这样的课程 public abstract class Class1 public Class1 function2 protected abstract void function2 public class Class2 im
  • mkstemp 的 java 等效项

    Java中有什么方法可以安全地写入临时文件吗 据我所知 创建临时文件 createTempFile 的唯一方法实际上并不同时打开它 因此文件打开和文件写入之间存在竞争条件 我错过了什么吗 我在 UnixFileSystem java 中找不
  • Vaadin 中当前 UI 的访问方法

    我目前正在 Vaadin 开发 Java Web 应用程序 我想从另一个类访问位于我的 LoginUI 中的 getter 方法 UI getCurrent 成功返回当前线程 LoginUI 我需要调用哪些方法来实现此目的 先感谢您 UI