С 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

Другие вопросы по тегам