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;
}
È stato utile?

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
scroll top