Olá pessoal, não sei nada de JavaEE…estou tentando listar meus clientes em um combo…mas esta dando erro.
<%
List<Cliente> clientes = ClienteDAO.recuperateAll();
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<form name="form" method="post" action="AlteraCli.jsp">
<select name="cmbCliente">
<option>--- Selecione Cliente ---</option>
<%for(int i=0; i<clientes.size(); i++){%>
<option value="<%= clientes.get(i).getCliNome() %>"></option>
<%}%>
</select>
<input type="submit" value="Alterar" />
</form>
</body>
</html>
Essa é a ClienteDAO
public class ClienteDAO {
public static boolean save(Cliente cliente) {
String sql = "insert into cliente (clinome,clifone,clidivida,clirua,bairro,cidade)values(?,?,?,?,?,?)";
try {
PreparedStatement pstm = (PreparedStatement) new Conexao().getConexao().prepareStatement(sql);
pstm.setString(1, cliente.getCliNome());
pstm.setString(2, cliente.getCliFone());
pstm.setDouble(3, cliente.getCliDivida());
pstm.setString(4, cliente.getCliRua());
pstm.setString(5, cliente.getCliBairro());
pstm.setString(6, cliente.getCliCidade());
pstm.executeUpdate();
return true;
} catch (Exception e) {
System.out.println("Erro ao inserir o Cliente\n" + e);
return false;
}
}
public boolean delete(Cliente cliente) {
String sql = "DELETE cliente WHERE idcliente = ?";
try {
PreparedStatement pstm = (PreparedStatement) new Conexao().getConexao().prepareStatement(sql);
pstm.setInt(1, cliente.mostrar_id());
pstm.executeUpdate();
return true;
} catch (Exception e) {
return false;
}
}
public boolean update(Cliente cliente) {
String sql = "UPDATE cliente SET clinome = ? WHERE idcliente = ?";
try {
PreparedStatement pstm = (PreparedStatement) new Conexao().getConexao().prepareStatement(sql);
pstm.setInt(1, cliente.mostrar_id());
pstm.setString(2, cliente.mostrar_nome());
pstm.executeUpdate();
return true;
} catch (Exception e) {
return false;
}
}
public Cliente recuperate(int codigo) {
Cliente cli;
String sql = "SELECT idcliente, clinome FROM cliente WHERE idcliente = " + codigo;
try {
Statement stm = (Statement) new Conexao().getConexao().createStatement();
ResultSet rs = (ResultSet) stm.executeQuery(sql);
if (rs.next()) {
cli = new Cliente();
cli.setCodigo(rs.getInt("idcliente"));
cli.setNome(rs.getString("clinome"));
return cli;
} else {
return null;
}
} catch (Exception e) {
return null;
}
}
public static Cliente recuperate(String nome) {
Cliente cli;
String sql = "SELECT idcliente, clinome FROM cliente WHERE clinome = " + nome;
try {
Statement stm = (Statement) new Conexao().getConexao().createStatement();
ResultSet rs = (ResultSet) stm.executeQuery(sql);
if (rs.next()) {
cli = new Cliente();
cli.setCodigo(rs.getInt("idcliente"));
cli.setNome(rs.getString("clinome"));
return cli;
} else {
return null;
}
} catch (Exception e) {
return null;
}
}
public static List<Cliente> recuperateAll(){
List<Cliente> lista = new ArrayList<Cliente>();
String sql;
Cliente client;
sql = "select clinome, clifone, clidivida, clirua, bairro, cidade from Cliente ORDER BY Nome";
try {
Statement stm = (Statement) new Conexao().getConexao().createStatement();
ResultSet rs = (ResultSet) stm.executeQuery(sql);
while(rs.next()){
client = new Cliente();
client.setNome(rs.getString("clinome"));
client.setCliFone(rs.getString("clifone"));
client.setCliDivida(Double.valueOf(rs.getString("clidivida")));
client.setCliRua(rs.getString("clirua"));
client.setCliBairro(rs.getString("bairro"));
client.setCliCidade(rs.getString("cidade"));
lista.add(client);
}
} catch (Exception e) {
lista = null;
System.out.println("Erro ao montar lista de Clientes\nErro:\n" + e);
}
return lista;
}
}
erro:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /lista_clientes.jsp at line 24
21: <form name="form" method="post" action="AlteraCli.jsp">
22: <select name="cmbCliente">
23: <option>--- Selecione Cliente ---</option>
24: <%for(int i=0; i<clientes.size(); i++){%>
25: <option value="<%= clientes.get(i).getCliNome() %>"></option>
26: <%}%>
27: </select>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.NullPointerException
org.apache.jsp.lista_005fclientes_jsp._jspService(lista_005fclientes_jsp.java:77)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
Se alguem puder me ajudar, estou mais por fora que joelho de escoteiro.