0

我正在使用 MyFaces CODI,因为它允许我将 CDI 注释与 ViewAccessScoped 一起使用——非常适合。问题是我发现我的应用程序打开的多个浏览器选项卡共享同一个@ViewAccessScoped支持 bean 的实例。尴尬的。不受欢迎。

在我的页面中,我有这样的事情:

<h:link outcome="dispRecord"
      target="_blank"
      value="Click Here To Open New Window For Record 101" >
   <f:param name="recID" value="101" />
</h:link>
<h:link outcome="dispRecord"
      target="_blank"
      value="Click Here To Open New Window For Record 202" >
   <f:param name="recID" value="202" />
</h:link>
<h:link outcome="dispRecord"
      target="_blank"
      value="Click Here To Open New Window For Record 303" >
   <f:param name="recID" value="303" />
</h:link>

(这实际上是通过 Primefaces p:dataGrid组件运行的迭代完成的,但我在这里尝试简化。)

单击任何链接将导致浏览器打开一个新窗口(选项卡),并且它打开的 JSF 网页引用@ViewAccessScoped支持 bean。但是,它们都获得相同的 windowid,这与包含链接的主窗口相同。我认为这就是为什么它们都获得相同的支持 bean 实例的原因。

有人知道怎么修这个东西吗?

4

1 回答 1

1

这是一个已知的浏览器问题。解决方案:http: //old.nabble.com/-CODI--lazy-windowId-drop-script-p31654496.html

于 2011-10-24T19:04:43.530 回答