我正在使用MyFaces CODI因为它允许我使用ViewAccessScoped的CDI注释 - 对此非常有用。问题是我发现我的应用程序打开的多个浏览器选项卡共享 @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的相同实例。
任何人都知道如何解决这个问题?
答案 0 :(得分:1)
这是一个已知的浏览器问题。解决方案:http://old.nabble.com/-CODI--lazy-windowId-drop-script-p31654496.html