Pessoal estou querendo litar alguns cliente do banco na tela. Pensei em um list box mas não consigo nenhum q exiba estes clientes. Alguem poderia dar uma dica?
Quase esquecia. Estou utilizando JSF
Pessoal estou querendo litar alguns cliente do banco na tela. Pensei em um list box mas não consigo nenhum q exiba estes clientes. Alguem poderia dar uma dica?
Quase esquecia. Estou utilizando JSF
Pessoal eu fiz assim.
<h:selectOneListbox value="#{projeto.project.nomeCliente}">
<f:selectItem itemValue="Anderson" itemLabel="Anderson"/> </h:selectOneListbox>
Só que ao invés de ficar esse nome firme eu queria selecionar do banco de dados. Tem como?
.
Alguem poderia ajudar?
To precisando muito.
Bom vou dar uma ajuda rápida pois já sofri com isso também.
vou dar mastigado
[color=blue]Cria um Bean de conexão:[/color]
import java.sql.*;
public class Conexao {
public Connection getStartConexao()
{
Connection connection = null;
try
{
//Class.forName("oracle.jdbc.driver.OracleDriver");
String driverName = "org.postgresql.Driver";
Class.forName(driverName);
String url = "jdbc:postgresql://localhost:5432/MeuBanco";
String username = "postgres";
String password = "123456";
connection = DriverManager.getConnection(url, username, password);
return connection;
}
catch(Exception ex)
{
ex.printStackTrace();
return null;
}
}
}
[color=blue]Cria uma Classe de Clientes, e lista todos cliente cadastrados no banco de dados, adicionando e retornando em uma arraylist.[/color]
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import javax.faces.model.SelectItem;
import conexaoBD.Conexao;
public class GrupoCliente {
private int cod_cliente;
private String descricao;
private ArrayList<SelectItem> todosCliente;
public GrupoCliente() {
}
public ArrayList<SelectItem> getTodosCliente(){
Conexao conexao = new Conexao();
Connection connection = conexao.getStartConexao();
ResultSet rs;
Statement stmt;
todosCliente = new ArrayList<SelectItem>();
try
{
StringBuffer sql = new StringBuffer();
sql.append("select * from Cliente order by descricao_cliente");
stmt = connection.createStatement();
rs = stmt.executeQuery(sql.toString());
String descricao;
String codigo;
while (rs.next())
{
codigo = rs.getString("cod_cliente");
descricao = rs.getString("descricao_cliente");
todosCliente.add(new SelectItem((codigo), descricao)); // pego o código e a descrição Cliente
}
return todosCliente;
}
catch (Exception e)
{
System.out.println(e.getMessage());
return todosCliente;
}
}
public int getCod_cliente() {
return cod_cliente;
}
public void setCod_cliente(int cod_cliente) {
this.cod_cliente = cod_cliente;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
}
[color=blue]agora na sua pagina .JSP, coloque a tag desta forma.[/color]
<h:selectOneListbox value="#{funcionario.cod_cliente}" styleClass="edit" style="width: 248px; height: 223px">
<f:selectItems value="#{grupoCliente.todosCliente}"/>
</h:selectOneListbox>
[color=blue]observações importantes no código acima: [color=red]value="#{funcionario.cod_cliente}" [/color] seria uma outra classe onde salvaria o código da chave estrangeira, ao inves de salvar a descrição monstrada ele salva o ID, você pode mudar no seu gosto, [color=red]value="#{grupoCliente.todosCliente}"[/color] listam todos os seus clientes monstrando na Listbox, detalhe importante NUNCA esqueça de colocar o ‘s’ no final f:selectItems pois você esta retornando uma lista e não apenas um valor, isto serve tambem para Combox só trocar [color=blue]h:selectOneListbox por h:selectOneMenu[/color][/color], não esqueça de setar no faces-config.
veja se isso resolve seu problema, Alex Delgado.
http://courses.coreservlets.com/Course-Materials/pdf/jsf/06-Event-Handling.pdf
http://courses.coreservlets.com/Course-Materials/pdf/jsf/07-HTML-Library.pdf