2011-04-08 165 views
0

当我打开两个浏览器和输入平行细节,值越来越混合。一个浏览器中的值在另一个浏览器中被填充......我们使用的是JSF框架,并且托管的bean在会话范围内(让我们在请求范围内不可能)...简而言之,值是在浏览器中共享...如何避免这种情况?任何线索?JSF - 会话管理

+0

和管理豆是......? – 2011-04-08 09:17:26

+0

参见[这个问题](http://stackoverflow.com/questions/5593298/jsf-session-issue-in-different-browser-windows)(副本?) – 2011-04-08 10:33:28

+0

你所说的两个浏览器是什么意思?同一浏览器的两个窗口? – bluefoot 2011-04-08 16:36:33

回答

1

你需要把这个bean的请求或查看范围来代替。正如你自己遇到过的,在基于会话的bean中存储基于请求/视图的数据是一个坏主意。

我认为视图范围会有很大的帮助,因为你提到请求范围是“不可能的”(事实上,它只需要预加载正确的数据,以便JSF可以相应地采取正确的操作)。

3

如果“打开两个浏览器”是指你打开浏览器相同的两个窗口则一切是正确的 - 你可以得到的只是一个每个浏览器会话(适用于Firefox有插件,它允许以避免此限制)。

但是如果你使用实际上是两个不同的浏览器不是在这种情况下,接缝您保存所有数据,应用范围或你有你的容器有问题。