Я предполагаю, что ваша сущность так хорошо спроектирована, что у нее есть уникальный технический идентификатор, например, последовательность автоматического приращения из БД.
public class Entity {
private Long id;
// ...
}
Если нет, вам нужно добавить его.
Затем добавьте свойство Map<Long, Boolean>
к компоненту, привязанному к таблице.
private Map<Long, Boolean> checked = new HashMap<Long, Boolean>();
(предварительная инициализация также может происходить в (post) конструкторе, сделайте свой выбор, по крайней мере, JSF не сделает это за вас; о, также дайте ему геттер, сеттер не нужен)
Затем добавьте столбец с флажком, который сопоставляется с логическим значением по идентификатору сущности в качестве ключа.
<h:dataTable value="#{bean.entities}" var="entity">
<h:column>
<h:selectBooleanCheckbox value="#{bean.checked[entity.id]}" />
</h:column>
...
</h:dataTable>
<h:commandButton value="Delete" action="#{bean.delete}" />
Теперь в методе действия, связанном с кнопкой удаления, можно собратьи удалите отмеченные пункты следующим образом:
public void delete() {
List<Entity> entitiesToDelete = new ArrayList<Entity>();
for (Entity entity : entities) {
if (checked.get(entity.getId())) {
entitiesToDelete.add(entity);
}
}
entityService.delete(entitiesToDelete);
checked.clear();
loadEntities();
}