Pegar ID JSF

2 respostas
jayro

Membros,

Estou tentando pegar no MB o ID de um Objeto Usuário que listo em um rich:dataTable.

<h:column>
				<h:commandLink action="#{user.exluirUsuario}">
					<h:graphicImage url="/imgs/excluir.png" style="border:0px;" />   
				</h:commandLink>
			</h:column>

O método no MB

public String exluirUsuario()
	{
		usuarioGeral.remove(id);
		
		return "exluido";
	}

Esta forma está correta/ Esse é o caminho ? Está dando NullPointException… :frowning:

Fico grato a todos.

2 Respostas

alexegidio

Cara eu faço assim:

<f:facet name="header">Alterar</f:facet>
	<a4j:commandLink id="alterar" value="alterar"
	    action="#{beanCidade.prepareUpdate}">
	      <a4j:actionparam name="idEntity" value="#{item.id}"
		 assignTo="#{beanCidade.idCidade}" />
	</a4j:commandLink>

No meu bean

public void prepareUpdate() {
	int id = Integer.parseInt(idCidade);
	setCidade(get(id));		
}

Outra forma seria você fazer um binding da sua datatable a uma variável no seu bean.

A

O NullPointException está dando provavelmente porque você não está setando em momento algum o ‘id’.
Tente assim (estou assumindo que o seu managed bean está mapeada como ‘user’ e que contenha um método setId(). Não sei bem como é o objeto da lista que você colocou na dataTable, estou assumindo que ele tenha um campo ‘id’ também:

Página:

<rich:dataTable var="usuario" value="algumaListaDeAlgumLugar">
...
<h:column>  
    <h:commandLink action="#{user.exluirUsuario}"> 
        <f:setPropertyActionListener value="#{usuario.id}" target="#{user.id}"/>
        <h:graphicImage url="/imgs/excluir.png" style="border:0px;" />     
    </h:commandLink>  
</h:column>

Managed Bean:

Public Class User
{
    ...
    public void setId( Integer newId )
    {
        id = newId;
    }
    ...
    public String exluirUsuario()  
    {  
        usuarioGeral.remove(id);  
        return "exluido";  
    }
    ...
}
Criado 19 de outubro de 2009
Ultima resposta 23 de out. de 2009
Respostas 2
Participantes 3