我有一个带有表的表单,每次按下按钮时我都可以为其添加N个人名 .

提交表单后,我在调试期间验证了每次调用setName()时(对于每个inputText),列表中的所有名称都使用该值设置 - 而不仅仅是与索引对应的名称 .

一个例子:

Example of the list values

代码如下:

<p:panelGrid>
      <p:row>
        <p:column>
            <p:commandButton id="addMoreFields" icon="ui-icon-plusthick" value="Add More Fields" actionListener="#{manageBean.addMoreFields()}" update="list" />
          </p:column>
      </p:row>
    </p:panelGrid>

<p:panelGrid id="list">
    <c:forEach items="#{manageBean.peopleList}" var="val" varStatus="loop">
      <p:panelGrid role="grid">
        <p:row>
          <p:column>
            <h:outputText value="Name" />
          </p:column>
          <p:column>
            <p:inputText value="#{manageBean.myList[loop.index].name}" />
          </p:column>
        </p:row>
      </p:panelGrid>
    </c:forEach>
</p:panelGrid>

    <p:commandButton id="submit" value="submit" actionListener="#{manageBean.submit}" />

ManageBean

...
        public List<Person> getPeopleList() {
        return getCurrentYear().getTeam().getPeopleInTeam();
    }

Team:

...

    private final List<Person> peopleList= new ArrayList<Person>();

        public List<Person> getPeopleInTeam() {
        return peopleList;
    }

Person:

...

private String name;
private String address;

public void setName(String name) {
this.name = name;
}

public String getName() {
return name;
}

EDIT: 终于明白了原因,但不是原因 . 显然,吸气剂在吸气剂中是导致这个问题的原因 . 如果我在manageBean中有一个人员列表,它可以很好地工作 . 但是,该列表是具体的PER团队 . 知道我怎么能做到这一点?这是怎么发生的?