p:remoteCommand更新组件工作不正常

时间:2016-06-09 11:34:51

标签: primefaces remotecommand

我们有一个 RemoteCommand (showOnlineUsers),它调用支持bean方法来显示所有在线用户。但它不会有时更新组件(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>

您可以清楚地看到Google Chrome网络调试器中错误生成的部分响应中缺少 OnlineUsersFormId:onlineUserId 。 这就是为什么(我猜),它不会更新页面上的panelGroup组件。

注意:一旦它不更新组件,它会在调试器中重复相同的消息,除非我们刷新页面。

0 个答案:

没有答案