【问题标题】:vaadin UI.getcurrent returns null in request handlervaadin UI.getcurrent 在请求处理程序中返回 null
【发布时间】:2015-02-12 17:52:15
【问题描述】:

为什么vaadin中的UI.getCurrent方法返回null,而getUI()在同样的情况下却返回UI。例如:

    @Override
    public boolean handleRequest(VaadinSession session,VaadinRequest request, VaadinResponse        response)
                throws IOException {

            UI.getCurrent(); //returns null
            getUI(); //works

            return false;
        }

我正在尝试使用自定义布局创建登录页面(以保留自动填充),因为 vaadin 抑制了LoginForm

【问题讨论】:

  • 可能是,您的处理程序在设置currentUIInitHandler 之前运行。否则,如果您可以为您的问题添加更多上下文,它可能会有所帮助。
  • 您使用什么版本的 Vaadin?现代 Vaadin UI 类中不存在方法 handleRequest。

标签: user-interface login vaadin


【解决方案1】:

两种获取 UI 的方法或方式的区别在 Vaadin 之书中有如下说明。

https://vaadin.com/book/-/page/advanced.global.html

Vaadin 提供两种访问 UI 对象的方法:使用来自任何组件的 getUI() 方法和全局 UI.getCurrent() 方法。

getUI() 的工作原理如下:

data = ((MyUI)component.getUI()).getUserData();

但这在很多情况下不起作用,因为它需要将组件附加到 UI。大多数情况下,UI 仍在构建中,例如在构造函数中。

当前服务的 servlet、会话和 UI 的全局访问方法允许轻松访问数据:

data = ((MyUI) UI.getCurrent()).getUserData();

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 2016-09-17
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    相关资源
    最近更新 更多