我无法将数据存储在一个视图中的对象中,并从另一个视图中访问它(包含其中的数据)

时间:2014-07-09 16:23:00

标签: java view scope vaadin vaadin-navigator

我正在尝试将一组对象存储在ArrayList中,并在辅助类中访问它们。我正在使用Vaadin和一个视图导航器从一个视图导航,该视图接受用户输入并导航到另一个视图,该视图在图形上显示一些视图。视图是辅助类。这些对象的ArrayList在辅助类之外,我尝试更改ArrayList的修饰符(我试过静态和最终),我尝试使用通用变量名和OuterClass从助手类内部引用变量。变量名。我将它存储为变量而不是存储在数据库中的原因(似乎是Vaadin CRUD的标准)是我的对象里面有其他对象的列表,我无法弄清楚如何获得灵活的输入用户界面或正确的容器(我多年来一直没有使用Java,而且我是vaadin的新手)。我应该补充一点,没有语法错误,但ArrayList总是空的。

本质上,我遇到的问题是我无法在一个帮助器类视图(由用户输入构成的对象)中创建一个对象,存储它,并能够从另一个帮助器类视图中读取它(以图形方式显示数据。)

2 个答案:

答案 0 :(得分:3)

除了上面的答案之外你可以使用Vaadin UI的会话属性。

UI.getCurrent().getSession().setAttribute("button", new Button("Button"));
Button b = (Button) UI.getCurrent().getSession().getAttribute("button");

其他可能的答案是例如events - 一个NavigateToViewEvent,用于将数据发送到所选视图。

答案 1 :(得分:2)

你有一个扩展UI类的主类。 您可以在此处添加属性以存储每个用户/实例数据结构。

您可以从vaadin应用程序的几乎任何位置访问UI类。 通过UI.getInstance()(以及对主类的强制转换),您可以访问其中的所有内容。