Erro com id de datatable selection

tenho uma tabela que nela estao “grupos de usuarios”

na imagem de um exemplo da minha tabela, ta dando null pointer qdo faço:

  id = getGrupoSelecionado().getIdGrupos();

tabelas

<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/>
                                            <h:link value="Deletar"/>
                                        </center>
                                    </p:column>

                                    <f:facet name="footer">
                                        <p:commandButton id="viewButtonGrupos" value="visualizar" icon="ui-icon-search"
                                                         update=":displayGrupos" oncomplete="gruposDialog.show()"/>
                                    </f:facet>

                                </p:dataTable>

======================================================
a que recebe id

 <p:dialog header="Amigos do Grupo" widgetVar="gruposDialog" resizable="true"
                              showEffect="explode" hideEffect="explode" modal="true"
                              style="height: 204px;width: 91px ; text-align: center">
                        
                       
                        <p:dataTable id="dataGrupo" var="grupos" value="#{grupoBean.listAmigosGrupo}"
                                     paginator="true" rows="6" rowKey="#{grupoBean.grupoSelecionado.idGrupos}"
                                             rendered="true"  >
                                    <f:facet name="header"> EMAILS </f:facet> 
                                    
                                     <p:column  style="width:185px">
                                         <h:outputText value="#{grupos.emailAmigo}" />
                                    </p:column>
                                    
                        </p:dataTable>
                       
                    </p:dialog>





Eu faço o seguinte :

coloco var na datatable “nomevar”

e no botão

<f:setPropertyActionListener value="#{nomevar}" target="#{grupoBean.grupoSelecionado}"/>

tentei assim e continuou a nao passar o id, por curiosidade pus a coluna id_grupos pra ver se estava setando certo, e esta ok. e nessa parte msm de passa pra outra q nao ta dando certo!!

<p:commandButton id="viewButtonGrupos" value="visualizar" icon="ui-icon-search"
                                                         update=":displayGrupos" oncomplete="gruposDialog.show()">
                                            <f:setPropertyActionListener value="#{grupos.idGrupos}" target="#{grupoBean.grupoSelecionado}"/>  
                                        </p:commandButton>

Mas onde está seu displayGrupos ?

no dialog com a proxima tabela

<h:form id="displayGrupos">
                <div >
                    <p:dialog header="Amigos do Grupo" widgetVar="gruposDialog" resizable="true"
                              showEffect="explode" hideEffect="explode" modal="true"
                              style="height: 204px;width: 91px ; text-align: center">
                        
                       
                        <p:dataTable id="dataGrupo" var="grupos" value="#{grupoBean.listAmigosGrupo}"
                                     paginator="true" rows="6" rowKey="#{grupoBean.grupoSelecionado.idGrupos}"
                                             rendered="true"  >
                                    <f:facet name="header"> EMAILS </f:facet> 
                                    
                                     <p:column  style="width:185px">
                                         <h:outputText value="#{grupos.emailAmigo}" />
                                    </p:column>
                                    
                        </p:dataTable>
                       
                    </p:dialog>
                </div>
            </h:form>

Retire o

.

Coloque o form dentro do dialog e não o inverso.

sem sucesso cara!!

algumas partes de classe que uso nessa parte …


public class Grupos {
    
    private int idAmigos;
    private int idGrupos;
    private int idUsuario;
    private String nomeGrupo;

get e sets

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

public Grupos getGrupoSelecionado() {
   
        return grupoSelecionado;
    }

    public void setGrupoSelecionado(Grupos grupoSelecionado) {
        this.grupoSelecionado = grupoSelecionado;
    }


===================================
 ---------------a 1ª tabela --------------------

public List<Grupos> getListGrupos() {
        if (null == listGrupos) {
           
            listGrupos = new ArrayList<Grupos>();
        }
        
        GrupoPG grupos = new GrupoPG();
        UsuarioDaoPG user = new UsuarioDaoPG();
        UserBean bean = new UserBean();
        ///email = bean.getEmail();
        //email = "bruno@email.com";
        //idUsuario = user.retornaIdUsuario(email);
        idUsuario = 1;

        listGrupos = grupos.pesquisar(idUsuario);
        
        return listGrupos;
    }

===============================================================
 ---------------a 2ª tabela --------------------
public List<Amigos> getListAmigosGrupo(){
        
        if(null == listAmigosGrupo){
            
            listAmigosGrupo = new ArrayList<Amigos>();
        }
        GrupoPG grupos = new GrupoPG();
        UsuarioDaoPG user = new UsuarioDaoPG();
        UserBean bean = new UserBean();
        ///email = bean.getEmail();
        //email = "bruno@email.com";
        //idUsuario = user.retornaIdUsuario(email);
        int id = 0;
        try {
        
            id = getGrupoSelecionado().getIdGrupos();
            
        } catch (Exception e) {
            
            
        }
       
        listAmigosGrupo = grupos.pesquisaAmigosGrupo(id);

        return listAmigosGrupo;

    }



eu consigo passar o id do linha selecionada porem nao consigo de maneira nenhuma recuprar esse id no Bean