包装背后DataTable的集合value
中的一个DataModel<E>
。
private List<Item> items;
private DataModel<Item> model; // +getter
@postconstruct
public void init() {
this.items = loadItSomehow();
this.model = new ListDataModel<Item>(items);
}
(在Item
本例中为只是表示每行的JavaBean类,例如Person
,Product
等)
而是将其绑定到数据表value
。
<h:dataTable value="#{bean.model}" var="item">
如果下拉列表绑定到Item
同一bean 的属性,而按钮绑定到同一bean的方法,则…
<h:column>
<h:selectOneMenu value="#{item.value}">
<f:selectItems value="#{bean.values}" />
</h:selectOneMenu>
</h:column>
<h:column>
<h:commandButton value="submit" action="#{bean.submit}" />
</h:column>
…然后,您可以DataModel#getRowData()
按如下方式在操作方法中通过选择的值来抓取当前项目:
public void submit() {
Item item = model.getRowData();
String value = item.getValue();
// ...
}