Boa Tarde,
Pessoal Queria um exemplo de como pegar um dado do meu datatable e colocar esse dado em um outro imput text de outra pagina.
Exemplo, tenho uma pagina com o cadastro só de clientes e quero que na tela de atendimento eu posso abrir a pagina de cadastro de clientes e pegar por exemplo o nome do cliente e colocar em um imput text ou outro campo. e consequentemente pegar o id desse cliente e gravar na tabela do atendimento.
estou utilizando JSF+Hibernate+prime Faces
Obrigado
[RESOLVIDO] Pegar Dados de um datatable JSF+PRIME FACES
10 Respostas
Opa.
Da uma olhada no showcase do primefaces. Talvez consiga resolver seu problema.
http://www.primefaces.org/showcase/
Opa, ja olhei mais nao consegui nada que me ajudasse.
Alguem tem só algum exemplo pra mostrar como se faz… pesquisei muito na internet, tem muita coisa, mais nada que me ajuda
Obrigado
Fiz um exemplo de CRUD de clientes.
Segue em anexo.
JsfCrud.zip (12.1 KB)
Bom dia,
Fiz o teu exemplo, mais quando vai pro datatable e clico em uma linha nada acontece. sera que é alguma biblioteca ou algo desatualizado, pois no seu projeto voce utilizou esse parametros
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p=“http://primefaces.org/ui”
e no meu eu estou utilizando
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p=“http://primefaces.org/ui”
Isso não deve ser o problema.
O que você precisa é fazer da mesma forma que o primefaces mostra na página do showcase da biblioteca (http://www.primefaces.org/showcase/ui/data/datatable/basic.xhtml)
No datatable (que deve estar dentro de um h:form) você precisa colocar o comando p:ajax com o evento onRowSelect e no listener você informa o método criado no ManagedBean (lembrando que o ManagedBean deve ter a anotação @SessionScope, pois você vai redirecionar para outra página).
Segue imagens em anexo.

Boa tarde,
meu projeto esta igual ao teu exemplo com segue abaixo
minha pagina
Clientes
<p:dataTable id="clientes" var="cliente" value="#{clienteBack.clientes}" selectionMode="single" selection="#{clienteBack.clienteSelecionado}" rowKey="#{cliente.id}" >
<p:ajax event="rowSelect" listener="#{clienteBack.onRowSelect}" />
<p:column headerText="#">
<h:outputText value="#{cliente.id}" />
</p:column>
<p:column headerText="Nome">
<h:outputText value="#{cliente.nome}" />
</p:column>
</p:dataTable>
</h:form>
meu bean
@ManagedBean(name = “clienteBack”)
@SessionScoped
public class ClienteBack {
private ClienteEntity clienteSelecionado;
private List clientes;
public ClienteEntity getClienteSelecionado() {
return clienteSelecionado;
}
public void setClienteSelecionado(ClienteEntity clienteSelecionado) {
this.clienteSelecionado = clienteSelecionado;
}
public List<ClienteEntity> getClientes() {
return clientes;
}
public void setClientes(List<ClienteEntity> clientes) {
this.clientes = clientes;
}
@PostConstruct
public void inicializar(){
clienteSelecionado = new ClienteEntity();
clientes = new ClienteBO().listarTodos(ClienteEntity.class);
}
//selecionar o clienteonRowSelect
public void onRowSelect(SelectEvent event) {
try {
FacesContext.getCurrentInstance().getExternalContext().redirect("index.xhtml");
} catch (IOException iOException) {
iOException.printStackTrace();
}
}
Obs: Meu data table lista todos meus clientes do banco de dado, quando passo o mouse em cima ele não fica com o cursor como uma mão para selecionar, consequentemente não faz nada quando clico;
Seu datatable deve estar dentro de um h:form
Ele Ja esta dentro de um h:form só nao apareceu ali na imagem
mostra todo o teu xhtml que tem o <p:datatable/>
Boa Tarde,
Deu certo , era uma script da minha pagina que bloqueava o clique no datatable. retirei ele e deu certo.
Obrigado A todos

