من از کد زیر برای پیدا کردن چک باکسی که تیک ان زده شده استفاده میکنم
public class Bean {
List<User> checkedItems;
private boolean check;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<User> getCheckedItems() {
return checkedItems;
}
public void setCheckedItems(List<User> checkedItems) {
this.checkedItems = checkedItems;
}
public boolean isCheck() {
return check;
}
public void setCheck(boolean check) {
this.check = check;
}
private List<User> users = new ArrayList<>(Arrays.asList(new User(1,"bahram"), new User(2,"amir"), new User(3,"zahra")));
public List<User> getUsers() {
return users;
}
private Map<Long, Boolean> checked = new HashMap<>();
public Map<Long, Boolean> getChecked() {
return checked;
}
public void setChecked(Map<Long, Boolean> checked) {
this.checked = checked;
}
public String submit() {
checkedItems = new ArrayList<>();
for (User item : users) {
if (checked.get(item.getId())) {
checkedItems.add(item);
}
}
checked.clear(); // If necessary.
return "wel";
// Now do your thing with checkedItems.
}
}
و در صفحه jsf برای دسترسی به این چک باکس از کد زیر...
<h:dataTable value="#{bean.users}" var="user" id="bean">
<h:column>
<h:selectBooleanCheckbox value="#{bean.checked[user.id]}"/>
</h:column>
</h:dataTable>
[bean.checked[user.id چطور کار می کند و چه ساختاری در jsf است