Duvida para deletar item na tabela

coloquei uma imagem pra ilustraçao e um comandlink, nao sei se é uma forma boa de se usar…

ja tenho o metodo que vai deletar esse cara mias como chamar o id do cara que clickei dessa tabela??

 <p:dataTable id="listagrupos"  var="grupos" value="#{grupoBean.listGrupos}"
                                             paginator="true" rows="6" rowKey="#{grupos.idGrupos}"
                                             selection="#{grupoBean.grupoSelecionado}" 
                                             selectionMode="single"
                                             rendered="true"  >
                                    <f:facet name="header"> GRUPOS </f:facet>  
                                        
                                    <p:column  style="width:185px">
                                        <f:facet name="header">
                                            Grupo
                                        </f:facet>
                                        <h:outputText value="#{grupos.nomeGrupo}" />
                                    </p:column>
                                                                          
                                    <p:column  style="width:85px">
                                        <f:facet name="header">
                                            Deletar
                                        </f:facet>
                                        <center>
                                            <p:graphicImage value="imagens/excluir.png"/>
                                            <br/>
                                            <p:commandLink value="Deletar" actionListener="#{??}"/>
                                        </center>
                                    </p:column>
                                        
                                    <f:facet name="footer">
                                        <p:commandButton id="viewButtonGrupos" value="visualizar" icon="ui-icon-search"
                                                         update=":display3" oncomplete="gruposDialog.show()">
                                         <!--   <f:setPropertyActionListener value="#{grupos.idGrupos}" 
                                         target="#{grupoBean.grupoSelecionado.idGrupos}"/>  -->
                                        </p:commandButton>
                                    </f:facet>
                                        
                                </p:dataTable>


=================================================
grupoBean

    public void deletarGrupo(){
        
        GrupoPG dao = new GrupoPG();
        AmigosPG aDao = new AmigosPG();
        int idgrupo = 0;
         idgrupo = ??
        dao.deleteGrupo(idgrupo);

    }


Coloca um f:param dentro do commandlink, e passa o id…
No seu método vai ter q receber esse param… da uma googleado

<p:commandButton id="deletar" value="Deletar" icon="imagens/excluir.png" 
                                                         update=":display5" oncomplete="DeletarGrupoDialog.show()" 
                                                         style="margin-left: 5px" >
                                            <f:setPropertyActionListener value="#{grupos.idGrupos}" 
                                                    target="#{grupoBean.grupoSelecionado.idGrupos}"/>
                                            
                                        </p:commandButton>

esse valor vai para o gruposelecionado.idGrupos ou tenho q da um get?? xhtml

pq assim não pegou nada…

 idgrupo = getGrupoSelecionado().getIdGrupos();

<p:commandButton id="deletar" value="Deletar" icon="imagens/excluir.png" update=":display5" oncomplete="DeletarGrupoDialog.show()" style="margin-left: 5px" >  
<f:param name="nomeParametro" value="#{grupos.id}"></f:param>                              
</p:commandButton>

Bean:


    public void deletarGrupo(FacesContext fc){  
        Map<String,String> params = fc.getExternalContext().getRequestParameterMap();
        String parametro = params.get("nomeParametro");
        GrupoPG dao = new GrupoPG();  
        AmigosPG aDao = new AmigosPG();  
        int idgrupo = 0;  
         idgrupo = ??  
        dao.deleteGrupo(idgrupo);  
  
    }  

voce pode fazer assim:
xhtml

<p:dataTable id="dt" value="#{ctrlManterUsuario.lista}" var="user">
	<p:column style="width: 100px">
		<p:commandLink onclick="dlg_excluir.show()" update=":form:gridExcluir" process="@this" title="Excluir">
			<f:setPropertyActionListener target="#{ctrlManterUsuario.selecionado}" value="#{user}" />
			<h:graphicImage value="/resources/images/trash.png" />
		</p:commandLink>
	</p:column>
//......
public void excluirUsuario(){
	try {
		usuarioDAO.beginTransaction();
		selecionado = usuarioDAO.findReferenceOnly(getSelecionado().getCod_usuario());
		usuarioDAO.delete(selecionado);
		usuarioDAO.commitAndCloseTransaction();			
	} catch (Exception e) {
		e.printStackTrace();
	}
}

Voce pode ate mesmo usar o confirmDialog do primefaces (http://www.primefaces.org/showcase-labs/ui/confirmDialog.jsf) e no ‘SIM’ voce chama o método excluir dai

método do DAO findReferenceOnly

public T findReferenceOnly(int entityID) {
	return em.getReference(entityClass, entityID);
}

Qualquer coisa de uma olhada aqui: http://uaihebert.com/?p=1414

Abraços

outra dica para melhorar um pouco o código xhtml, no column do dataTable do primefaces, você pode trocar isso

<p:column  style="width:185px">  
	<f:facet name="header">  
		Grupo  
	</f:facet>  
	<h:outputText value="#{grupos.nomeGrupo}" />  
</p:column>  

por somente isso:

<p:column headerText="Grupo" style="width:185px">  
	<h:outputText value="#{grupos.nomeGrupo}" />  
</p:column>  

vlw pelas dicas vou tentar fazer com elas!!

iae pessoal blz tentei dessa maneira mais nao passa nd, tipo continuar os paremetros no output text mais nao consigo pegar

<p:commandButton value="Deletar" icon="ui-icon-trash" update=":form3"
                                                  style="margin-left: 20px" oncomplete="DeletarGrupoDialog.show()" >
                                            <f:param value="#{grupoBean.grupoSelecionado}" name="id"/>
</p:commandButton>

e com <f:setPropertyActionListener target="#{ctrlManterUsuario.selecionado}" value="#{user}" /> nesse caso para ate de passar os parametros no output text

Use o atributo VAR que você definiu na dataTable como “grupos”, fica mais fácil. Algo como:

XHTML:

&lt;p:commandButton value="Deletar" action="#{bean.exclui(grupos)}"/&gt;

BEAN:

public void exclui(Grupo grupo){ dao.exclui(grupo); }