Jsf:checkbox dentro de um datatable

Bom dia amigos, tenho encontrado diversos tutoriais na web sobre JSF, porém, não encontrei nenhum que tivesse algum exemplo que trabalhe com checkbox dentro de um datatable.

Trabalhei bastante tempo com struts e é mto simples fazer isso lá. Somente crio um array para contêr o valor dos ids dos checkbox selecionados na minha tela e capturo e esse valor via request dentro da minha Action.

Agora imaginem uma lista de clientes aonde tenho 3 colunas:

  • A primeira contendo o checkbox para marcar para exclusão
  • A segunda com o nome do cliente
  • A terceira com o nome do cliente

Esse checkbox da primeira coluna possui no value o id do cliente.

Gostaria de saber como fazer para capturar os items marcados para exclusão no JSF ? Lembrem-se que pretendo utilizar checkbox dentro de datatable.

Pessoal, peço a gentileza que respondam esse tópico porque conheço diversos profissionais que trabalham com JSF e não sabem como fazer isso sem que seja por request. Sem falar que não existe nenhum exemplo funcional na net(eu não conheço nenhum…).

Desde já mto obrigado,

Tenho um exemplo utilizando commandLink, mas tenho acho que pode te ajudar:

<h:column> <f:facet name="header"> <h:outputText value="Excluir"/> </f:facet> <div class="imgCenter"> <h:commandLink action="sucess" actionListener="#{meuBean.delete}"> <h:graphicImage id="imgDel" url="/img/excluir.gif"/> <f:param id="codId" name="codId" value="#{obj.id}" /> </h:commandLink> </div> </h:column>

Nesse código, ao clicar no link é passado ao managed bean o id do registro a ser excluído através da tag . Para fazer isso com checkbox e excluir apenas ao usuário clicar em um botão “confirmar” vc terá que iterar sobre a dataTable e verificar quais linhas estão marcadas para exclusão, provavelmente vc precisará fazer binding com uma HtmlTable no seu managed bean.

e utilizar o componente selectMany (só complementando…rs)

Eae

Você pode fazer um valueBind da checkbox com um mapa em um backing bean

ficaria algo do tipo:
<h:selectBoolean value="#{meuBean.meuMapa[key_do_mapa]}" >

vc substitui “key_do_mapa” pelo id do cliente por exemplo, e ai vc vai ter um mapa no seu bean identificando quais estão selecionados.

Espero ter ajudado.

Ferry

Eu gostaria de saber como fazer isso selecionando apenas 1 item da tabela com o checkbox, alguem tem ideia ???

valeu