H:selectBooleanCheckbox no datatable JSF

Srs tenhom um dataTable com duas colunas. Uma coluna nome e uma coluna com um campo <h:selectBooleanCheckbox onde o usuário ira marcar um ou vários nomes.

Para preencher esse datable eu carrego uma coleção de um bean que tem os atributos nome e idNome.

Meu problema é eu monto o datatable com vários nomes e depois eu recebeu de um outro lugar um array de Integer com os Ids de usuários que devem aparecer com os checkboxs marcados como true .

Minha duvida é como no managed bean eu posso referenciar e identificar os checkboxes do datatable e marcar alguns checkbox como true e outros false ?

Hoje eu faço um esquema que depois que eu carrego o datatable eu executo uma função javascript que pega um aaray de inteiros e varre o datatable através do getElementByID e uso a propriedade checked = true e false. Entretanto acho qhe deve haver uma forma melhor através dos próprios recursos do JSF para fazer essa tarefa.

Alguém poderia me dar uma dica ou orientaçãode como fazer melhor isso ?
>

cara tenta colocar na sua classe uma propriedade do tipo Boolean, q a datatable ja renderiza como um checkbox!

cara dá uma pesquisada para utilizar um map, fica bem legal e fácil de manipular as rows selecionadas ou não

Eu fiz assim:

Criei no meu bean um hashmap do qual irá conter os ids da minha entidade e um valor booleano, para indicar se para esse ID foi selecionado ou não.

No meu JSP ficou assim:

                &lt;h:selectBooleanCheckbox id="chkSelecao" value="#{meuBean.mapSelecionados[reg.id]}"&gt;
                    &lt;a4j:support action="#{meuBean.selecionarRegistro}" event="onclick"/&gt;
                &lt;/h:selectBooleanCheckbox&gt;   

Veja que temos um mapSelecionados para marcar quem foi selecionado e um ajax support para no evento do onclick do checkbox marcar o ID através do método selecionarRegistro que pode ficar vaziou ou efetuar qualquer operação desejada.

No bean temos:

declaração do mapa com seus getters e setters:

private Map&lt;Long, Boolean&gt; mapSelecionados = new HashMap();

selecionarRegistro ficando vazio, a não ser que alguma operação seja demandada, se não a sua única função aqui é fazer um “request” para o bean, fazendo o preenchimento automático do mapa.

    /**
     * Chamado quando qualquer item é selecionado na grid
     */
    public void selecionarRegistro() {
    }

Depois disso, é só processar as informações no mapa, dár um getValue retornando que foi selecionado (igual a true) e fazer o que for necessário. Qualquer dúvida poste aí.

Tens um map de um long e um boolean como saber s a caixa foi selecionada ou nao para poder obeter o boolean

tu tens mapSelecionados[reg.id], como modificar o o Valor Boolean, consoante o q for selecionado no selectBoolean