JSF - Preencher os dados do formulario a partir de um registro selecionado no datatable, como faco?

Ola pessoal
eu tenho uma pesquisa, onde me retorna uma relacao de pessoas,{essa parte esta pronta}
porem, eu quero que ao clicar na imagem “Editar” de uma certa pessoa ele va para a pagina de formulari e carregue todos os dados da pessoa no formulario

assim preenchendo o
nome, cpf e endereco por exemplo

ja tentei algumas coisas e nao consegui, alguem pode me dar uma luz nisso?
me indicar um tutorial ou coisa parecida

abs
t+

Dá uma pesquisada sobre DataModel.
Quando tu clica em uma linha da tabela tu já trás o registro da mesma.

Ou então se tu tiver usando jsf 1.2 dá uma olhada em <f:setpropertyActionListener>.

Valew!

[quote=fec]Dá uma pesquisada sobre DataModel.
Quando tu clica em uma linha da tabela tu já trás o registro da mesma.

Ou então se tu tiver usando jsf 1.2 dá uma olhada em <f:setpropertyActionListener>.

Valew![/quote]
bem, eu dei uma procurada e ateconsegui fazer algo, porem, nao esta preenchendo os dados do form

veja oq tenho feito

pessoabusca.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://richfaces.ajax4jsf.org/rich" prefix="rich"%>
<%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>
<f:view>
	<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
	<html>
	<head>
	<meta http-equiv="Content-Type" content="text/html; UTF-8">
		<link href="../css/css_azul.css" rel="stylesheet" type="text/css">
		<link href="../css/css_azul_form.css" rel="stylesheet" type="text/css">
		<link href="../css/css_azul_tbl.css" rel="stylesheet" type="text/css">		
	<title>Insert title here</title>
	</head>
	<body>
<div class="ContainerForm">

	<span class="TituloBarraEsq">&nbsp;</span>
	<span class="TituloBarra"><h1>Busca de Pessoa</h1></span>
	<span class="TituloBarraDir">&nbsp;</span>	
	<h:form id="form">
		<fieldset>
			<span style="width:210px">	Nome: <h:inputText value="#{pessoaBuscaMB.pessoaFisicaDB.pessoaFisica.nome}" id="nome" maxlength="30" size="30" styleClass="FormCampo" ></h:inputText></span>
			<span style="width:115px">	Pessoa:
					<h:selectOneMenu id="tipoId" styleClass="FormCampo">
						<f:selectItem itemValue="0" itemLabel="" />				
						<f:selectItem itemValue="1" itemLabel="Fisica" />
						<f:selectItem itemValue="2" itemLabel="Juridica" />
					</h:selectOneMenu> 
			</span>            			
	            <span style="width:185px">	CPF/CNPJ: <h:inputText id="docCPF"  maxlength="20" size="21" styleClass="FormCampo"></h:inputText> </span>
	        	<span style="width:180px">	Status
						<h:selectOneMenu id="statusId" styleClass="FormCampo">
							<f:selectItem itemValue="0" itemLabel="" />				
							<f:selectItem itemValue="1" itemLabel="Ativo" />
							<f:selectItem itemValue="2" itemLabel="Inativo" />
						</h:selectOneMenu>
						<h:commandButton id="comandoCadastrar" value="Procurar" action="#{pessoaBuscaMB.busca}" >
						</h:commandButton>
	        	</span> 	            

		</fieldset>
   	        <div id="Erro">
				<h:dataTable value="#{pessoaBuscaMB.pessoaFisicaDB.listaPorParametro}" id="tabela" var="pessoa" border="0"  rowClasses="TbltrTrue,TbltrFalse" width="750">
				
					<h:column>
						<f:facet name="header">
							<h:outputText value="Código" /> 
						</f:facet>
						<h:outputText value="#{pessoa.id}"/>
					</h:column>
					<h:column>
						<f:facet name="header">
							<h:outputText value="Nome" /> 
						</f:facet>
						<h:outputText value="#{pessoa.nome}"/>
					</h:column>
					<h:column>
						<f:facet name="header">
							<h:outputText value="CPF/CNPJ" /> 
						</f:facet>
						<h:outputText value="#{pessoa.cpf}"/>
					</h:column>	
					<h:column>
						<f:facet name="header">
							<h:outputText value="Status" /> 
						</f:facet>
						<h:outputText value="#{pessoa.status}"/>
					</h:column>
					<h:column>
						<f:facet name="header">
							<h:outputText value="Editar" /> 
						</f:facet>
						<h:outputText value="#{pessoa.id}"/>
						<h:commandLink value="Editar" action="#{pessoaBuscaMB.buscaPorId}">
							<f:param name="id" value="#{pessoa.id}" />
						</h:commandLink>
					</h:column>																						
				</h:dataTable>
		</div>			
	</h:form>
	</body>
	</html>

</f:view>

PessoaBuscaMB.java

package br.com.krusst.precadastro.managedbeans;

import br.com.krusst.precadastro.dao.PessoaFisicaDB;

public class PessoaBuscaMB extends PessoaFisicaDB {

	PessoaFisicaDB pessoaFisicaDB = new PessoaFisicaDB();

	public PessoaBuscaMB(PessoaFisicaDB pessoaFisicaDB) {
		super();
		this.pessoaFisicaDB = pessoaFisicaDB;
	}

	public PessoaBuscaMB() {
		super();
	}

	public PessoaFisicaDB getPessoaFisicaDB() {
		return pessoaFisicaDB;
	}

	public void setPessoaFisicaDB(PessoaFisicaDB pessoaFisicaDB) {
		this.pessoaFisicaDB = pessoaFisicaDB;
	}

	public String busca(){
		return "busca";
	}
	
	public String buscaPorId() throws Exception{
		this.pessoaFisicaDB.getListaPorId();
		return "buscaId";
	}
	
}

PessoaFisicaDB.java

package br.com.krusst.precadastro.dao;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.faces.component.UIParameter;
import javax.faces.event.ActionEvent;

import org.apache.commons.beanutils.converters.StringConverter;

import br.com.krusst.precadastro.beans.PessoaFisica;
import br.com.krusst.precadastro.beans.Status;
import br.com.krusst.precadastro.database.GerenciadorConexao;
import br.com.krusst.precadastro.util.KrusstException;
import br.com.krusst.precadastro.util.Conversor;

public class PessoaFisicaDB implements PessoaFisicaDAO{

	private PessoaFisica pessoaFisica = new PessoaFisica();
	final String BUSCA_POR_PARAMETRO = "EXEC SPPessoaBuscaPorParametro ?,?,?,?";	
	
	public PessoaFisica getPessoaFisica() {
		return pessoaFisica;
	}

	public void setPessoaFisica(PessoaFisica pessoaFisica) {
		this.pessoaFisica = pessoaFisica;
	}

	public void getListaPorId() throws Exception{
		Connection conn  = null;
		ResultSet rs = null;
		String sql = BUSCA_POR_PARAMETRO;
		this.pessoaFisica.setId(90);
        try {
			conn = GerenciadorConexao.getConexao();
			CallableStatement clblStmt = conn.prepareCall(sql);   
			clblStmt.setInt(1,this.pessoaFisica.getId());
			clblStmt.setString(2,"");
			clblStmt.setString(3,"");			
			clblStmt.setInt(4,0);
			
			rs = clblStmt.executeQuery();
			rs.next();
			this.pessoaFisica.setNome(rs.getString(2));
			this.pessoaFisica.setCpf("123456789");
		} catch (Exception e) {
				throw new Exception(e);
		}
		
	}
	
}

nao reparem, mas por questao de testes, fiz o parametro por HARDCODE, mas, mesmo assim, nao estao vindo os dados, ele me abre o form em branco

sobre o jsf 1.2, nao estou usando, pos ele tem um BUG no DataTable qdo usado junto com TomCat6

meus BEANs estao configurados para scopo de Request, porem, ja testei no Session e Aplication, e nao deu certo também

e alem desses problemas, qdo eu click no botao “Procurar” ele me da a seguinte mensagem de erro no Java Script

Erro em tempo de execução.
Deseja depurá-lo?

Linha: 281
Erro: 'elements' é nulo ou não é um objeto

porem, se eu removo o botao

						<h:commandLink value="Editar" action="#{pessoaBuscaMB.buscaPorId}">
							<f:param name="id" value="#{pessoa.id}" />
						</h:commandLink>

ele nao gera erro

ate agora é isso o que eu tenho, e esses sao os mes problemas

abs
obrigado

bem…de nao transferir os valores eu ja encontrei o erro
como eu uso um ManagedBeam para cada pagina, entao ocorreu esse erro de nao transferir
oq quero saber é,
é possivel passar os valores de um ManagedBean para outro ou vou ter que criar um ManagedBeam para controlar as 2 paginas?
porem, o problema do botao “Procurar” ainda persiste,ele ainda me da o erro do Java Script
oq faco para corrigir esses problemas?

abs

Acredito que isso possa te ajudar,

Abraços e boa sorte!

[quote=rponte]Acredito que isso possa te ajudar,

Abraços e boa sorte![/quote]

valeu
tem bastante coisa ai
vou dar uma olhada amanha com mais calma

obrigado
T+