С MyFaces CODI я не получаю разные значения windowid на разных вкладках браузера - почему?
Я использую MyFaces CODI, потому что он позволяет мне использовать CDI-аннотации с ViewAccessScoped - отлично работает для этого. Проблема в том, что я обнаружил, что несколько вкладок браузера, открытых моим приложением, совместно используют один и тот же экземпляр компонента поддержки @ViewAccessScoped. Неловко. Нежелательно.
На моей странице у меня есть что-то вроде этого:
<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. Однако все они получают одинаковый идентификатор окна, который совпадает с основным окном со ссылками в нем. Я предполагаю, что именно поэтому они все получают один и тот же экземпляр компонента поддержки.
Кто-нибудь знает, как это исправить?
1 ответ
Это известная проблема браузера. Решение: http://old.nabble.com/-CODI--lazy-windowId-drop-script-p31654496.html