我的 Vaadin 14 的主页是带有根 Route 的 MainView。
MainView
被用作另一个视图(带有layout = MainView.class
)的“模板”,所以我认为它更像是一个“抽象”视图,不应自行初始化,仅用于其他视图作为布局。
MainView
现在的问题是:如果用户BeforeEnterEvent
在构造函数之后访问。这可能会导致抛出异常,因为用户尚未经过身份验证,并且构造函数已经执行了诸如构建选项卡之类的操作。
有没有办法阻止用户访问 MainView 的路由或在调用构造函数之前执行的事件?仅当用户通过身份验证时才允许访问视图。
@Route("")
public class MainView extends AppLayout implements BeforeEnterObserver {
public MainView() {
super();
// Creates all the Tabs that are used in the MainView, may throw exception if the user calls the URL of this View before authenticated
setupView();
}
...
@Override
public void beforeEnter(BeforeEnterEvent event) {
// Reroute to Login if User is NOT authenticated
}
}
@Route(value = "foo", layout = MainView.class)
public class OtherView {
更新:
该修复程序作为Vaadin 14.2中的实验性功能发布。