添加新行时,数据表不会在其他行中保留值编辑

时间:2012-01-25 15:51:03

标签: jsf-2

在向数据表添加新行时,我遇到了无法保留数据表值的问题。我是否必须在请求范围内拥有我的bean,那么有没有办法在后续添加期间保留更新的数据表值?在我的例子中,绑定列表(使用datatable的value属性)在每个添加行操作期间始终为空。

豆:

public class Students {
  private StudentService service;

  @PostConstruct 
  public void init() {
    list = service.list();
  }

  public void add() {
    list.add(new Student()); 
  }

  public void save() {
    service.save(list); 
  } 
}

形式:

<h:form> 
    <h:dataTable value="#{students.list}" var="student">
        <h:column><h:inputText value="#{student.name}" /></h:column>
    </h:dataTable> <h:commandButton value="Add" action="#{students.add}" /> 
    <h:commandButton value="Save" action="#{students.save}" />
</h:form>

1 个答案:

答案 0 :(得分:0)

如果你有请求bean,一种方法是在该组件上有valueChangeListener =“#{bean.ajaxCall}”并在你的bean中有一个空的ajaxCall方法。这样,值就会通过辅助bean中的ajax调用进行存储,并且在更新数据表后仍然存在。