jsf poll update清除输入字段

时间:2016-03-18 15:26:57

标签: jsf jsf-2 primefaces jsf-2.2

我几天都在苦苦挣扎。

我在下面的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,因为服务器中的选项卡数量可能会发生变化。

由于

1 个答案:

答案 0 :(得分:0)

我找到了一个简单而且很棒的解决方案,添加了resetValues =&#34; false&#34;到p:民意调查:

<p:poll resetValues="false" interval="3" listener="#{counterView.increment}" update="txt_count" />

由于