为什么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
。
答案 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();