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

时间:2014-12-14 14:42:17

标签: user-interface login vaadin

为什么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

1 个答案:

答案 0 :(得分:3)

两种方法或获取用户界面的方式之间的差异在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();