Jsf ediÇÃo- ajuda

E aí pessoal, blz??

Estou utilizando jsf para a minha aplicação web.
Tenho uma página que cadastra, altera, consulta e exclui.

o cadastro está funcionando.

Não estou conseguindo fazer o alterar. Estou parado no seguinte ponto:
Quando clico no botão consulta, exibe uma nova página com um datable, exibindo os dados de uma bean. Ai eu clico em um registro e via javascript eu mando o id do registro. O que eu quero é que, quando o id chegar eu colocar nos inputText os valores para poder editar o registro.

Tenho outra forma sem usar o javascript? qualquer ajuda é bem vinda.

desde já agradeço.

Manda o parametro via <f:param> para o bean e no bean você seta o Objeto de acordo com o id passado, se você usar o Ajax4JSF usa o support para reRenderizar a parte da página que tem o form, ou então usa a action do link para enviar para pagina novamente.

Tem como vc exemplificar pra mim? sem ajax…por favor…
to começando a aprender jsf a pouco tempo…Valeu.

desde já agradeço.

Algo assim
na sua DataTable

//Levando em consideração que chamarei de objeto o var da DataTable e seuBean o ManagedBean que tenha a ction editar e essaPagina.jsf já esta explicativo ^^

<h:column>
    <f:facet name="header"><h:ouputText value="Editar" /></f:facet>
    <h:commandLink value="(Editar)" actionListener="#{seuBean.editar}">
        <f:param id="idDoObjeto" action="essaPagina.jsf" value="#{objeto.id}" />
    </h:column>
</h:column>

No bean vai ter um metodo assim

private Pessoa pessoa;//O Objeto que você quer atualizar
public Pessoa getPessoa(){
    return pessoa;
}
public void editar(javax.faces.event.ActionEvent event){
   javax.faces.component.UIComponent link = event.getComponent();
   javax.faces.component.UIParameter param = (javax.faces.component.UIParameter) link.findComponent("idDoObjeto");
   Long id = ((Long) param.getValue()).longValue();
   
   //Algum metodo para carregar uma pessoa pelo id
   pessoa = carregaPessoaPeloId(id);

}

blz…vlw…pelas dicas, porem a tag <f:param> não está aceitando o atributo action.
Tem outro jeito de fazer?

Ops fui eu que errei mesmo

o certo

<h:column>
    <f:facet name="header"><h:ouputText value="Editar" /></f:facet>
    <h:commandLink value="(Editar)" actionListener="#{seuBean.editar}" action="essaPagina.jsf">
        <f:param id="idDoObjeto" value="#{objeto.id}" />
    </h:column>
</h:column>

cara naum funcionou. A página que eu preciso que receba os dados é jsp.

Como você acessa a FacesServlet? /faces/? se for coloque no lugar da suaPagina.jsf /faces/suaPagina.jsp

é facesservlet. mudei, mas a página não redireciona.

estruturas das páginas:

cadastro -> consulta(janela popup) -> cadastroEdicao.

eu estava tentando anteriormente redirecionar pra mesma página(cadastro), onde estão os meus botões salvar,alterar e excluir.
como eu não consegui, criei outra página(cadastroEdicao), mas sem sucesso.

desde já agradeço.

Tava pensando. Você tem algum tutorial ou aplicação que faça isso? pra poder ver como é?

valeu!

Procura no site da Caelum a apostila sobre JSF

Eai cara,

Tem um jeito melhor de fazer isso… você pode usar um DataModelList ao invés de uma list comum quando consultar os dados… e quando vc fizer um submit clicando em algum objeto que ta dentro da dataTable que foi montando iterando no DataModelList, o dataModelList tem um método que te dá o objeto selecionado na interface. Assim não precisa ficar passando ID por parametro.

ps: não esqueça de usar o managedbean na sessão para o que está querendo fazer.

[]s

Ferry

cara eu utilizo o UIData para levar as informacoes de uma pagina pra outra do jeito Q vc tah kerendo…
ce kiser entra em contato q t passo um codigo d exemplo…
com o <f:param> da muita bronca pra fazer…
o UIData eh bem melhor