簡體   English   中英

重新渲染后,JSF ui:repeat和f:ajax為h:inputText提供錯誤的值

[英]JSF ui:repeat and f:ajax giving wrong value for h:inputText after rerender

我有一個問題列表,可以使用ui:repeat很好地顯示它們,但是在單擊“編輯”按鈕后,重新渲染的inputText被賦予錯誤的question.id。 由於某些原因,如果在第一項上單擊“編輯”,則分配的inputText值是列表中第二項的值,即使其他輸出(h:inputText元素除外)也是正確的。

   <h:form id="questionnaireForm">

        <ui:repeat value="#{ProjectManager.currentProject.preQuestions}" var="question" varStatus="current"
                   id="preQuestionsRepeat">
            <div>
                <ui:fragment rendered="#{!question.editing}">
                    <f:ajax render="@form">
                        <p>#{question.id} #{question.questionText}</p>
                        <h:inputText value="#{question.id}"/>
                        <h:commandLink styleClass="link"
                                       action="#{question.setEditing}"
                                       value="Edit">
                        </h:commandLink>
                    </f:ajax>
                </ui:fragment>
            </div>
            <div>
                <ui:fragment rendered="#{question.editing}">
                    <f:ajax render="@form">
                        <p>#{question.id} #{question.questionText}</p>
                        <h:inputText value="#{question.id}"/>
                    </f:ajax>
                </ui:fragment>
            </div>
        </ui:repeat>

    </h:form>

顯然,我真的不想編輯ID。 我只想要正確的問題。某些東西會出現在我的inputText中:-)

也許我沒有正確使用? 根據我到目前為止的閱讀情況,這似乎還不錯。

非常感謝你的協助。

您是否正確重寫了equals()和hashCode()? 這些方法用於從您選擇的列表中提取值。 它拉出與equals()運算符匹配的第一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM