Первое сообщение здесь, так что немного со мной. Искал много, но либо из-за того, что я был слепым, либо потому, что я просто не использовал правильные строки поиска, я не нашел ответа, относящегося к моей проблеме.Первичный опрос вызывает сообщение от f: viewParam
В принципе, у меня есть веб-приложение, написанное на Java и использующее Prime. Я использую p: layout, имеющий основное содержимое в центральном блоке, заголовок на севере и нижний колонтитул в южном блоке макета. Узел запаздывания содержит p: poll, который каждые две секунды запускается при вызове функции js при запуске oncomplete.
Пока все хорошо. Дело в том, что на определенной странице, в блоке макета центра, у меня есть f: viewParam, который принимает только longs и, даже несмотря на то, что значение действительно, когда этот опрос выполняется, появляется требуемое сообщение из f: viewParam.
После интенсивного поиска я обнаружил, что добавив ignoreAutoUpdate = "true" в p: poll, сообщения из f: viewParam не будут запущены, а предупреждение, указывающее, что я должен предоставить действительный id не показан.
Итак, мой вопрос заключается в следующем: наличие ignoreAutoUpdate = "true" в моем p: poll будет подвергать риску, если это возможно, подтверждение f: viewParam? Или безопасно оставить его там?
Вот это relevan части из моего макета:
Опрос формируют блок макета на запад:
<h:form id="liveQueueForm">
<p:remoteCommand name="rcStart" action="#{liveQueueMB.startPoll()}"/>
<p:remoteCommand name="rcStop" action="#{liveQueueMB.stopPoll()}"/>
<p:poll id="liveQueueUpdater" delay="10" widgetVar="livePoll" interval="2" listener="#{liveQueueMB.init}" oncomplete="updateLiveQueue(xhr, status, args);" autoStart="true" partialSubmit="true" ignoreAutoUpdate="true" immediate="true" />
<div id="live-queue">
<div id="queue-holder"></div>
</div>
</h:form>
Диафрагменное: блок метаданных, который имеет свою п: viewParam:
<f:metadata>
<f:viewParam name="callId" value="#{viewInboundCallDetailsMB.callId}" required="true" requiredMessage="Please provide a valid call ID" converter="javax.faces.Long" converterMessage="The call ID is not numeric" />
<f:viewAction action="#{viewInboundCallDetailsMB.init}"/>
</f:metadata>
Спасибо!
Где вы разместили тег ''? Атрибут процесса '' по умолчанию установлен в '@ form' (и' 'to' @ all'). Таким образом, он обрабатывает всю форму. Возможно, вам потребуется установить атрибут процесса '' на '@ this' вместо ('). –
Tiny
Теги '' '' используются на основе логического значения, хранящегося в ManagedBean, который имеет область сеанса. Я уже думал об этой возможности и пробовал ее, прежде чем приступить к решению ignoreAutoUpdate = "true" ... –