gpt4 book ai didi

servlets - 在 Vaadin 14 应用程序中将 `UI` 对象范围状态存储在哪里?

转载 作者:行者123 更新时间:2023-12-05 05:09:25 25 4
gpt4 key购买 nike

上下文(网络应用)

要存储我们整个 Vaadin 应用程序可用的状态,我们可以在 VaadinContext 上获取并设置“属性”在运行时代表我们整个基于 Vaadin 的 Web 应用程序的对象。这些属性充当键值集合,其中键的类型为 String值的类型是 Object .

我们通过调用 UI.getCurrent().getSession().getService().getContext() 访问上下文.

session (每个用户)

要存储任何用户 session 可用的状态,我们可以类似地在 VaadinSession 上获取和设置“属性”目的。

我们通过调用 UI.getCurrent().getSession() 访问 session .

UI (网络浏览器窗口/选项卡)

这两个级别的范围、上下文和 session 是在 Java Servlet 中定义的等效项的包装器规范。但 Vaadin 实际上有第三个更精细的范围。 Vaadin 支持多窗口应用程序,其中每个 Web 浏览器窗口(或选项卡)都有自己的内容,由 UI 处理。目的。如果用户在我们的 Vaadin 应用程序中打开了三个窗口,则该用户有三个 UI服务器上的对象实例位于单个 VaadinSession 中目的。

因此,似乎常见的需求是根据 UI 存储状态(网络浏览器窗口/选项卡)。所以我希望看到同样的 getAttribute & setAttribute UI 上的方法如上所示 VaadinSession & VaadinContext .但是,不,我在 UI 上没有看到这样的方法。 .

➥ 根据 UI 是否有适当的位置来存储状态对象?

在过去,在前几代 Vaadin 中,我们总是编写自己的 UI 子类。所以我们总是可以通过自己定义成员变量来存储状态 UI -子类。现在,在 Vaadin Flow(v10+,目前为 14)时代,我们不鼓励(禁止?)编写 UI 的子类。 .

在为这些属性提交功能请求之前,我想问一下我是否错过了人们存储他们的 per- UI 的常用位置当前基于 Vaadin 的应用程序中的状态。

最佳答案

在 Vaadin Flow 中有 ComponentUtil帮助程序类,它具有使用组件和 UI 存储数据的方法。

参见一对 ComponentUtil.setData 方法,一个 taking a Class作为关键,另一个 taking a String作为键,就像 VaadinContextVaadinSession 上的 getAttribute/setAttribute 方法一样。

关于servlets - 在 Vaadin 14 应用程序中将 `UI` 对象范围状态存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57564699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com