@UIScope 上的网格注释视图奇怪的行为
Grid on @UIScope annotated view strange behavior
Vaadin 19.0.6,spring 启动。例如,在两个不同的浏览器或选项卡中打开带有 @UIScope 注释的相同视图。然后为window1中的grid请求数据。现在从 window1 中的视图导航并为 window2 中的网格请求不同的数据。 Return 返回到窗口 1 中查看,您将在网格中看到与窗口 2 中相同的数据。我还不明白如果你有 @UIScope 怎么会发生这种情况 - 范围仅限于浏览器选项卡。某种 DataProvider 共享?
我找到了原因。在 UiScope 中很容易混淆哪个 bean 被“保存”。例如,如果您有带有服务 bean 的 DataProvider,那么每个视图的服务 bean 不是唯一的。您必须将每个视图的所有逻辑移动到 DataProvider 中。这是我的错误。
PS。一些额外的解释。如果您从 View bean 设置服务 bean 的某些属性,那么这些属性将在全局设置,并且当您 return 返回某个视图时(无论在哪里 - 选项卡、window、浏览器、会话)使用相同的服务,您将获得最后的全局服务状态。我希望这会对某人有所帮助。
Vaadin 19.0.6,spring 启动。例如,在两个不同的浏览器或选项卡中打开带有 @UIScope 注释的相同视图。然后为window1中的grid请求数据。现在从 window1 中的视图导航并为 window2 中的网格请求不同的数据。 Return 返回到窗口 1 中查看,您将在网格中看到与窗口 2 中相同的数据。我还不明白如果你有 @UIScope 怎么会发生这种情况 - 范围仅限于浏览器选项卡。某种 DataProvider 共享?
我找到了原因。在 UiScope 中很容易混淆哪个 bean 被“保存”。例如,如果您有带有服务 bean 的 DataProvider,那么每个视图的服务 bean 不是唯一的。您必须将每个视图的所有逻辑移动到 DataProvider 中。这是我的错误。
PS。一些额外的解释。如果您从 View bean 设置服务 bean 的某些属性,那么这些属性将在全局设置,并且当您 return 返回某个视图时(无论在哪里 - 选项卡、window、浏览器、会话)使用相同的服务,您将获得最后的全局服务状态。我希望这会对某人有所帮助。