vaadin UI.getcurrent在请求处理程序中返回null

Joh*_*342 5 user-interface login vaadin

为什么UI.getCurrentvaadin 中的方法返回null,但实际getUI()返回UI相同的情况.例如:

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

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

            return false;
        }
Run Code Online (Sandbox Code Playgroud)

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

cra*_*abe 4

这两种方法或者获取UI的方式的区别在Book of Vaadin中有如下说明。

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

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

作品getUI()如下:

data = ((MyUI)component.getUI()).getUserData();
Run Code Online (Sandbox Code Playgroud)

然而,这在许多情况下不起作用,因为它要求将组件附加到 UI。大多数情况下,当 UI 仍在构建时(例如在构造函数中),情况并非如此。

当前服务的 servlet、会话和 UI 的全局访问方法允许一种简单的方法来访问数据:

data = ((MyUI) UI.getCurrent()).getUserData();
Run Code Online (Sandbox Code Playgroud)