我几天都在苦苦挣扎。
我在下面的primefaces中有一个tabView,其值是对象的集合。
<p:tabView id="allChats"
value="#{userCalcChatRoom.userChats.userListChats}" var="userChat"
activeIndex="#{userCalcChatRoom.userChats.activeChat}" dynamic="true" cache="true"
scrollable="true">
<p:tab title="#{userChat.getTitle()}">
<h:form id="chats">
<div class="chatBottom">
<p:dataList id="dataListMessages"
value="#{userChat.chat.messages}" var="message"
rendered="#{not empty userChat.chat.messages}" type="none">
<p>
<span class="username"># message.user.username}: </span> <span
class="message">#{message.message}</span>
</p>
</p:dataList>
</div>
<div class="divAddNewMessage">
<p:inputText autocomplete="false" value="#{userChat.inputAddNewMessage}" required="true" />
<p:commandButton process="@form" update="@form"
actionListener="#{userChat.addNewMessage() }" styleClass="hidden" />
</div>
</h:form>
</p:tab>
</p:tabView>
此集合可以在服务器上更改,因此我需要每隔X秒更新一次此tabView,我可以使用poll进行更新:
<p:poll update="onlineUserList allChats" interval="2"/>
问题是我在每个选项卡上都有输入字段,每次选票都会丢失其值。
有没有办法更新tabview而不更新输入字段?
我尝试过使用一个简单的html字段,但每次调查都会重新呈现。 我无法使用ID,因为输入字段位于tabview内部,我需要更新tabview,因为服务器中的选项卡数量可能会发生变化。
由于
答案 0 :(得分:0)
我找到了一个简单而且很棒的解决方案,添加了resetValues =&#34; false&#34;到p:民意调查:
<p:poll resetValues="false" interval="3" listener="#{counterView.increment}" update="txt_count" />
由于