从JSF dataTable更新Bean

时间:2009-12-11 15:18:20

标签: forms jsf input datatable

我有这个h:dataTable和form:

<h:form>
<h:dataTable value='#{bean.allData.dataItems}' var='item'>
   <h:column>
     <h:outputText value='#{item.id}' />
   </h:column>

   <h:column>
     <h:inputText value='#{item.name}' />
   </h:column>
</h:dataTable>

<h:commandButton value="Save" action="#{bean.saveEntries}"/>
</h:form>

因此,该表显示了id和一个名称为的文本框。这有效。当用户点击该按钮时,我希望它保存对名称字段的任何更改。

DataBean具有:

private Vector<ItemBean> dataItems;

// constructor here

public void setDataItems(Vector v) {
   dataItems = v;
}

public Vector getDataItems() {
   return dataItems;
}

和ItemBean有......

private String id;
private String name;

// setter for both
// getter for both

Bean有一个'DataBean'类型的变量'allData'。

Bean还有一个方法saveEntries(),它目前是空白的(因为我不确定它是如何工作的)。如何引用输入来设置这些值?

1 个答案:

答案 0 :(得分:1)

JSF已经在UPDATE MODEL VALUES阶段完成了它。打印/调试局部变量,你会看到。您需要在save方法中执行的只是将数据保存在某个数据存储区中。

有关更多背景信息和示例,请参阅以下文章:

  1. Using datatables
  2. Debug JSF lifecycle