У меня есть элемент ap: poll в заголовке моего приложения JSF2, который запускается каждую секунду, чтобы проверить время окончания аукциона (которое может измениться в любой момент в бэк-офисе, и я должен оставаться над ним). заметив теперь, что всякий раз, когда опрос запускает, вызываются все «визуализированные» методы в заголовке. Это почему? И как это можно остановить?
Часть кода, которая может иметь отношение к этому:
<td>Remaining Time:
<h:outputText id="remTime" value="#{auctionBean.remainingTime}"/>
<p:poll listener="#{auctionBean.calcRemainingTime()}" interval="1" update="remTime" />
</td>
РЕДАКТИРОВАТЬ:
Еще немного о моих функциональных требованиях. У меня есть домашняя страница с восемью ссылками: 5 в верхнем колонтитуле и 3 в нижнем колонтитуле. У меня также есть поисковый компонент, который мне нужно показать - как только пользователь войдет в систему - для 3 из этих ссылок. Я делаю это, передавая в сеансе атрибут fromPage и принимая решение показать или скрыть компонент поиска.
Когда я использую h: commandLink для всех ссылок на мою домашнюю страницу, все работает нормально. Но возникает другая проблема: URL-адреса JSF тянутся одним кликом. Это известная проблема, поэтому я не буду подробно ее объяснять.
OK. Поэтому я перешел на h: link. Теперь URL меняется каждый клик и ведет себя нормально. Но для каждого клика все «исходные» методы - для всех 8 ссылок на домашней странице - вызываются слева направо, сверху вниз. Да, все 8 «исходящих» методов вызываются для каждого клика. URL-адрес изменяется правильно, и страница отображается правильно, но атрибут «fromPage» в сеансе всегда относится к последней вызванной ссылке: той, что внизу справа.
Чтобы сделать вещи еще более странными, мой компонент поиска всегда отображается, потому что последняя ссылка в заголовке предназначена для ссылки, которую он должен показывать. Когда я проверяю это, помещая другую ссылку на страницу - вверху справа - для страницы, для которой Поиск не должен отображаться, Поиск теперь не отображается никогда.
OK. Я могу просто отказаться от URL, показывающего правильную страницу, переключиться обратно на commandLinks и продолжить свою жизнь. Но я хочу сделать это правильно и помочь своим пользователям. Есть ли решение?