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.
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.
//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 ^^
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);
}
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.
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.
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