Como fazer javax.faces.model.SelectItem selecionado
Pergunta
Estou criando uma lista de javax.faces.model.SelectItem
(em um bean) para uso com um h:selectManyCheckbox
mas eu não consigo descobrir como fazer um SelectItem
selecionado.
Como fazer isso? Deve ser possível, certo? ...
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;
}
Solução
Suponha que tenhamos este código JSF:
<h:selectManyCheckbox value="#{bean.selectedValues}">
<f:selectItems value="#{bean.playerList}"/>
</h:selectManyCheckbox>
, em seguida, os valores selecionados (ou seja, as caixas de seleção marcadas) são armazenados no bean.selectedValues ?? propriedade.
Assim, em seu código Java, você deve lidar com as selectValues, colocando o ID correto no selectedValues ?? propriedade.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow