在 Vaadin 8 中,我目前正在开发一个 Web 应用程序,我正在努力解决菜单/视图管理/导航器...
由于我对 servlet 和 Vaadin 完全陌生,我不太确定我的方法是否有效/如果我理解这一点正确。
我以为是这样理解 Vaadin 的:
- 该应用程序在我的服务器上运行。
- 对于每个访问它的用户,都会创建一个我的 UI 的新实例
现在我想要一个很好的设计来管理导航器(将字符串映射到视图)和我的菜单(需要显示字符串和传递给导航器的键字符串)。
我目前的想法是使用这样的枚举:
public Enum ViewManager {
HOME("home", "Home", new HomeView()),
ANOTHER_VIEW("another", "Another View", new AnotherView());
private final String stateName, menuName;
private final View view;
MenuEntry(String stateName, String menuName, View view) {
this.stateName = stateName;
this.menuName = menuName;
this.view = view;
}
然后我可以开发菜单以通过迭代来创建条目ViewManager.values()
。
我可以使用添加视图到 UI 导航器navigator.addView(String, view)
(我不喜欢navigator.addView(String, Class<View>)
,因为它会在每次导航时创建一个新的视图实例。
长话短说:当他们改变视图属性时,这会起作用还是我会在多个用户之间产生干扰。(当用户尝试访问诸如电子邮件、密码等敏感数据时尤其危险……例如在 loginView 中)