我们在spring3中有页面范围的概念吗?假设用户打开多个选项卡,那么如果数据存储在会话中,那么在某些情况下可能会出错。想象一下用户将在浏览器中打开两个选项卡。在这两个选项卡中,他都在同一页面上工作,以便他可以更快地完成工作。因此,如果某些数据是从会话中引用的,那么在这种情况下,应用程序可能会进入错误状态。
所以为了避免这种情况,我想将数据存储在页面范围内,这样每个页面数据就不会在会话中混合?它是在春季直接可用还是我需要编写自己的对话逻辑和页面范围?
在 Spring 中,您有以下范围:
singleton - (默认)将单个 bean 定义限定为每个 Spring IoC 容器的单个对象实例。
原型 - 将单个 bean 定义限定为任意数量的对象实例。
request - 将单个 bean 定义限定为单个 HTTP 请求的生命周期;也就是说,每个 HTTP 请求都有自己的 bean 实例,该实例是在单个 bean 定义的后面创建的。仅在 Web 感知 Spring ApplicationContext 的上下文中有效。
session - 将单个 bean 定义限定为 HTTP 会话的生命周期。仅在 Web 感知 Spring ApplicationContext 的上下文中有效。
全局会话 - 将单个 bean 定义限定为全局 HTTP 会话的生命周期。通常仅在 Portlet 上下文中使用时才有效。仅在 Web 感知 Spring ApplicationContext 的上下文中有效。
我们在spring3中有页面范围的概念吗?
--> 在 Spring 中,您没有页面范围,但您可以配置您的特定 bean 以使用请求范围。
参考:弹簧文档