【发布时间】:2021-07-19 17:29:56
【问题描述】:
例如,让我有:
public class MainView extends AppLayout {
public MainView() {
User user = VaadinSession.getAttribute("user");
if(user.isCheckSomething())
Span span = new Span("Hello " + user.getFirstname());
}
}
如果用户尚未登录,这将失败并出现 NPE,因为从会话中获取用户将为空。现在我可以在if(user.isCheckSomething()) 之前添加一个空检查,但理想情况下,如果用户未登录,我宁愿根本不呈现AppLayout。也就是说,我宁愿通过BeforeEnterObserver 在视图中失败public void beforeEnter(BeforeEnterEvent event) 方法,但是 AppLayout 在调用 beforeEnter(...) 方法之前被调用和创建。
换句话说,如果用户没有通过视图登录,我如何强制完全跳过 AppLayout 的实例化,从而永远不会构造 AppLayout。
【问题讨论】:
标签: vaadin vaadin-flow vaadin14