Come selezionare javax.faces.model.SelectItem
Domanda
Sto creando un elenco di javax.faces.model.SelectItem
(in un bean) da utilizzare con un h: selectManyCheckbox
ma non riesco a capire come fai un SelectItem
selezionato.
Come si fa? Deve essere possibile, giusto? ...
public List<SelectItem> getPlayerList(String teamName) {
List<SelectItem> list = new ArrayList<SelectItem>();
TeamPage team = (TeamPage) pm.findByName(teamName);
List<PlayerPage> players = pm.findAllPlayerPages();
for (PlayerPage player : players) {
boolean isMember = false;
if (team.getPlayerPages().contains(player)) {
isMember = true;
}
SelectItem item;
if (isMember) {
// TODO: Make SelectItem selected???
item = null;
} else {
item = new SelectItem(player.getId(), createListItemLabel(player), "", false, false);
}
list.add(item);
}
return list;
}
Soluzione
Supponiamo di avere questo codice JSF:
<h:selectManyCheckbox value="#{bean.selectedValues}">
<f:selectItems value="#{bean.playerList}"/>
</h:selectManyCheckbox>
quindi i valori selezionati (ovvero le caselle di controllo selezionate) sono memorizzati nella proprietà bean.selectedValues ??.
Pertanto, nel tuo codice Java, devi gestire selectValues ??inserendo l'ID corretto nella proprietà selectedValues ??.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow