【问题标题】:Vaadin 7 Pass Data Between ViewsVaadin 7 在视图之间传递数据
【发布时间】:2016-07-28 08:02:04
【问题描述】:

我有两个 Vaadin 视图,我想用这两个视图进行搜索。 我的第一个视图包含一个用于搜索参数的TextField 和一个用于搜索过程的Button。我想要做的是,一旦用户单击搜索按钮,我想将搜索参数发送到我的第二个视图,我将从我的 DAO 类中调用搜索方法,然后将显示搜索结果。我是 Vaadin 新手,我不知道如何执行此操作,因此我们将不胜感激。

【问题讨论】:

    标签: java vaadin vaadin7


    【解决方案1】:

    将数据传递给视图的经典方法是通过该视图的参数(这也允许为该搜索添加书签)。见View接口:

    void enter(ViewChangeListener.ViewChangeEvent event)
    

    导航到此视图。此方法总是在视图显示在屏幕上之前调用。 event.getParameters() 可能包含与视图相关的额外参数。

    您可以通过导航器从原始视图发送这些参数。例如

    navigator.navigateTo("search/searchterm") 
    // `search` is your view name, `searchterm` is the passed param
    

    查看Handling URI Fragment Path of the Book of Vaadin中的示例

    【讨论】:

      【解决方案2】:

      我记得通过将调用视图传递给被调用的子视图来做到这一点。尝试将调用对象作为构造函数参数传递给子视图。之后在子视图中,您可以添加对您定义的各种事件作出反应的侦听器。

      总结: 创建一个视图类,该类使用您的逻辑和构造函数实现/扩展视图以传递先前的视图(调用对象)

      f.e. 在调用类中:

      ViewX x = new ViewX(this);
      

      在子类中

      previousView.getDao().save(...);
      

      如果我能记住方法等。我会写一个更好的例子,就像我几年前在 Vaadin6 工作时一样......

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-18
        • 1970-01-01
        • 2022-01-07
        • 2011-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多