【问题标题】:Preserve View State in Vaadin only in specific cases仅在特定情况下保留 Vaadin 中的视图状态
【发布时间】:2021-10-29 12:40:50
【问题描述】:

所以,我有一个视图应该在用户重新加载时保留状态。这很容易做到并且有据可查。但是,在一种情况下,我在用户执行特定操作后从服务器端重新加载页面,在这种情况下,我实际上希望视图完全重新加载。

有没有办法区分这些情况并影响视图何时应保持其状态?

【问题讨论】:

  • 您使用哪个 Vaadin 版本?例如,Vaadin 8 和 14 的答案是不同的。
  • 抱歉,我使用的是 Vaadin 14
  • 如果您可以更明确一点,这也会有所帮助:您现在如何保存状态?您尝试过什么保留它?
  • @cfrick 当然,抱歉:我按照article 了解如何保存状态并按预期工作。至于我做了什么不保存它:什么都没有,因为我不知道怎么做。我无法在网上找到任何解决方案/提示,而且我对 Vaadin 的经验也不是很丰富。
  • 拥有两个独立的视图是否有意义——让我们称它们为“PreservingView”和“RegularView”——这样如果你真的想完全重新加载,你将重定向到“RegularView”,否则你会坚持“PreservingView”吗?

标签: java vaadin vaadin14


【解决方案1】:

在 Vaadin 14 中,您可以使用 @PreserveOnRefresh 注释来注释特定的 views / components。因此,如果您的应用中有两个视图,如下所示,RegularView 将不会在重新加载时刷新。

@Route("preserve")
@PreserveOnRefresh
public class PreservedView extends VerticalLayout {

    public PreservedView() {
        // ...
    }
}

@Route("regular")
public class RegularView extends VerticalLayout {

    public RegularView () {
        // ...
    }
}

【讨论】:

  • 谢谢。最初我想避免这种情况,以免在已经臃肿的应用程序中引入额外的视图,但似乎没有其他方法可以解决这个问题。谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-16
  • 2013-11-20
  • 1970-01-01
相关资源
最近更新 更多