【发布时间】:2016-07-28 08:02:04
【问题描述】:
我有两个 Vaadin 视图,我想用这两个视图进行搜索。
我的第一个视图包含一个用于搜索参数的TextField 和一个用于搜索过程的Button。我想要做的是,一旦用户单击搜索按钮,我想将搜索参数发送到我的第二个视图,我将从我的 DAO 类中调用搜索方法,然后将显示搜索结果。我是 Vaadin 新手,我不知道如何执行此操作,因此我们将不胜感激。
【问题讨论】:
我有两个 Vaadin 视图,我想用这两个视图进行搜索。
我的第一个视图包含一个用于搜索参数的TextField 和一个用于搜索过程的Button。我想要做的是,一旦用户单击搜索按钮,我想将搜索参数发送到我的第二个视图,我将从我的 DAO 类中调用搜索方法,然后将显示搜索结果。我是 Vaadin 新手,我不知道如何执行此操作,因此我们将不胜感激。
【问题讨论】:
将数据传递给视图的经典方法是通过该视图的参数(这也允许为该搜索添加书签)。见View接口:
void enter(ViewChangeListener.ViewChangeEvent event)导航到此视图。此方法总是在视图显示在屏幕上之前调用。 event.getParameters() 可能包含与视图相关的额外参数。
您可以通过导航器从原始视图发送这些参数。例如
navigator.navigateTo("search/searchterm")
// `search` is your view name, `searchterm` is the passed param
【讨论】:
我记得通过将调用视图传递给被调用的子视图来做到这一点。尝试将调用对象作为构造函数参数传递给子视图。之后在子视图中,您可以添加对您定义的各种事件作出反应的侦听器。
总结: 创建一个视图类,该类使用您的逻辑和构造函数实现/扩展视图以传递先前的视图(调用对象)
f.e. 在调用类中:
ViewX x = new ViewX(this);
在子类中
previousView.getDao().save(...);
如果我能记住方法等。我会写一个更好的例子,就像我几年前在 Vaadin6 工作时一样......
【讨论】: