0

我有一个问题列表,我可以使用 ui:repeat 来显示它们,但是在单击 Edit 按钮后,重新呈现的 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 中显示一些内容 :-)

也许我没有正确使用?根据我目前的阅读,这似乎很好。

非常感谢你的协助。

4

1 回答 1

1

您是否正确覆盖了 equals() 和 hashCode()?这些方法用于从您选择的列表中提取值。它提取与 equals() 运算符匹配的第一个。

于 2010-06-15T01:32:23.617 回答