p:remoteCommand обновление компонента работает некорректно

У нас есть RemoteCommand (showOnlineUsers), который вызывает метод резервного компонента для отображения всех онлайн-пользователей. Но он (иногда) не обновляет компонент (OnlineUsersFormId:onlineUserId).

<p:remoteCommand name="showOnlineUsers" 
                 action="#{bean.showOnlineUsers()}" 
                 update="OnlineUsersFormId:onlineUserId" />

Эта удаленная команда должна обновить следующую информацию: h: panelGroup

<h:form id="OnlineUsersFormId">
    <h:panelGroup id="onlineUserId">
        <ui:repeat var="user" value="#{bean.usersList}">
            #{user.getUserName()}
        </ui:repeat>
    </h:panelGroup>
</h:form>

Этот код работает нормально, но через некоторое время он работает ненормально и генерирует неполные сообщения с частичным ответом в Chrome-Network-Debugger.

Правильно сгенерированное сообщение:

<partial-response id="j_id1">
   <changes>
     <update id="OnlineUsersFormId:onlineUserId">
       <span id="OnlineUsersFormId:onlineUserId"></span>
     </update>
     <update id="j_id1:javax.faces.ViewState:0">-938130356222711200:-4155932992558832648
     </update>
  </changes>
</partial-response>

Неверно сгенерированное сообщение:

<partial-response id="j_id1">
   <changes>
     <update id="j_id1:javax.faces.ViewState:0">-938130356222711200:-4155932992558832648
     </update>
   </changes>
</partial-response>

Как вы можете ясно видеть, OnlineUsersFormId: onlineUserId отсутствует из-за некорректного сгенерированного частичного ответа в сетевом отладчике Google Chrome. Именно поэтому (я полагаю) он не обновляет компонент panelGroup на странице.

Примечание. Если компонент не обновляется, он повторяет то же сообщение в отладчике, если только мы не обновим страницу.

0 ответов

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