如何在与按钮相同的数据表行中获取输入组件的值?

我有一个数据表,其中行是动态的,每行包含一个selectOneMenu 。 如果我在每一行都有一个按钮,并且我想在selectOneMenu上获取所选项目,那么最好的方法是什么?

将数据集的value后面的集合包装在DataModel

 private List items; private DataModel model; // +getter @PostConstruct public void init() { this.items = loadItSomehow(); this.model = new ListDataModel(items); } 

(此示例中的Item只是表示每一行的javabean类,例如PersonProduct等)

将其绑定到数据表的value

  

如果下拉列表绑定到Item的属性,并且按钮绑定到同一个bean的方法…

         

…然后你可以通过DataModel#getRowData()获取当前项目,并且相应地在action方法中获取所选值,如下所示:

 public void submit() { Item item = model.getRowData(); String value = item.getValue(); // ... }