E ae galera!!
Preciso de uma maozinha!!!
A ideia é fazer o componente “h:selectOneMenu” "h:selectOneMenu " listar os dados de um campo na tabela do Banco de Dados e ao escolher um item da lista. O componete “rich:dataTable” “rich:dataTable” carrega automaticamente os dados de outro
campo da tabela, ou seja:
Ao escolher o nome no “h:selectOneMenu” “h:selectOneMenu”
usando ajax vai aparecer os outros dados no “rich:dataTable” “rich:dataTable”.
O conteúdo desta, pode ser usando Classe/ClasseDao/ClasseControl/JSF/richfaces/BD.
Grato!!!
Cenário
-------------- Classe Cliente -----------------
package exercicios;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity //ela vai referenciar a tabela do banco e cria-la;
public class Cliente {
@Id //chave primaria
@GeneratedValue //gera o id sequencial
private int id;
private String nome;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
-------------- Classe ClienteDao -----------------
//Inseri Altera e Exluir o Cliente
package exercicios;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
public class ClienteDao {
//EntityManager //É O CARA DO BANCO EXCLUI ALTERA E CONSULTA
private EntityManager em = Conexao.getEntityManager();
//Consultar pelo ID
public Cliente consultar(int id) {
return em.find(Cliente.class, id);
}
//OU SEGUNDA OPÇÃO DE CONSULTA PARA ALIMENTAR O “h:selectOneMenu” “h:selectOneMenu”
//Consultar todos o clientes
public List consultar() {
Query query = em.createNativeQuery(“select * from cliente”, Cliente.class);
return query.getResultList();
}
//OU Terceira OPÇÃO DE CONSULTA PARA ALIMENTAR O “h:selectOneMenu” “h:selectOneMenu”
//Consultar pelo nome
public List consultar(String nome) {
//Query da persistencia sempre
Query query = em.createNativeQuery("select * from cliente " +
“upper(nome) like upper(:nome)”, Cliente.class);
query.setParameter(“nome”, “%” + nome + “%”);
return query.getResultList();
}
}
-------------- Classe ClientControl -----------------
//é o mesmo do manage bean(faces-config)
package exercicios;
import java.util.ArrayList;
import java.util.List;
public class ClienteControl {
private ClienteDao clienteDao = new ClienteDao();
private Cliente cliente = new Cliente();
private List clientes = new ArrayList();
public String listar() {
clientes = clienteDao.consultar();
return null;
}
public Cliente getCliente() {
return cliente;
}
public void setcliente(Cliente cliente) {
this.cliente = cliente;
}
public List getClientes() {
return clientes;
}
public void setCliente(List clientes) {
this.clientes = clientes;
}
}
-------------- cliente.jsp -----------------
<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1” pageEncoding=“ISO-8859-1”%>
<%@ taglib prefix=“f” uri=“http://java.sun.com/jsf/core”%>
<%@ taglib prefix=“h” uri=“http://java.sun.com/jsf/html”%>
<%@ taglib uri=“http://richfaces.org/a4j” prefix=“a4j”%>
<%@ taglib uri=“http://richfaces.org/rich” prefix=“rich”%>
“h:form”
“rich:panel”
"h:panelGrid columns=“2"”
“h:selectOneMenu value=”#{clienteControl.Listar()}" "
“f:selectItem itemLabel=“Selecione” itemValue=”"/"
“a4j:support event=“onchange” reRender=“clientes””"/a4j:support"
“/h:panelGrid”
“/rich:panel”
“rich:dataTable value=”#{clienteControl.cliente }" var=“cli” width=“100%”"
“f:facet name=“header”>
“h:outputText value=“Clientes”””/h:outputText"
“/f:facet”
“rich:column”
“h:outputText value=”#{cli.profissao }"""/h:outputText"
“/rich:column”
“rich:column”
“h:outputText value=”#{cli.idade }"""/h:outputText"
“/rich:column”
“/rich:dataTable”
