killer_ 0 Denunciar post Postado Abril 27, 2007 opa....olá a todos do forum eu sô meio novato em java quanto mais utilizando JSP...mas eu sô o tal do cara curioso.....husahusahusa....e tô tentando desenvolve um sisteminha aki....bom vamos ao meu problema eu tenho 3 combobox no meu sistema....quando a pessoa selecionar algum valor na 1º combo (onchange), a 2º irá receber os valores resultantes de um select no banco....e a 3º combo por sua vez irá receber tbm os valores resultantes de outro select d acordo com a opção selecionada na 2º combo tenho problema na seguinte linha Statement s = connection.createStatement(); na verdade não é um erro, mas sim ele passa direto por este passo e já retorna minha variavel cadastroList, ou seja, VAZIA, q esta ae no codigo abaixo eu até tentei de várias maneiras resolve isso, mas enfelizmente não tive sucesso...agora tô tentando faze assim....vamos ao codigo JSP <%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@ page import="java.util.*" %> <jsp:useBean id="dbBean" scope="application" class="Controle.DbBean"/> <%@ page import="Controle.CadastroVO" %> <html> <body> .... .... .... <label id="staticText1" style="left: 46px; top: 204px; position: absolute" name="staticText1">Escola:</label> <!-- ComboBox da Escola --> <form name="form1" style="height: 20px; left: 164px; top: 204px; position: absolute; width: 216px"> <select name="menu1" onchange="<%String escola = request.getParameter("menu1");%>"> <option value="-2" selected>Selecione a Escola</option> <option value="-1">-------------------------</option> <option value="1">Escola 1</option> <option value="2">Escola 2</option> <option value="3">Escola 3</option> </select> </form> <label id="staticText2" style="left: 460px; top: 204px; position: absolute" name="staticText2">Nº da Turma:</label> <!-- ComboBox Turma --> <form name="form2" style="height: 20px; left: 594px; top: 204px; position: absolute; width: 216px"> <select name="menu2" onchange="<%String turma = request.getParameter("menu2");%>"> <option>Turma</option> <option></option> <% ArrayList turmas = dbBean.getTurmas(escola); Iterator iterator = turmas.iterator(); while (iterator.hasNext()) { CadastroVO cadastro = (CadastroVO) iterator.next(); %> <option><%=cadastro.getTurma()%></option> <%}%> </select> </form> <label id="staticText3" style="left: 46px; top: 285px; position: absolute" name="staticText3">Nome:</label> <!--ComboBox Nome --> <form name="form3" style="height: 20px; left: 164px; top: 285px; position: absolute; width: 526px"> <select name="menu3" onchange="<%String dados = request.getParameter("menu3");%>"> <option>Nome</option> <% ArrayList nomes = dbBean.getAlunos(turma); Iterator iterator1 = nomes.iterator(); while (iterator1.hasNext()) { CadastroVO cadastro1 = (CadastroVO) iterator1.next(); %> <option><%=cadastro1.getNome()%></option> <%}%> </select> </form> ..... ..... ..... Bean onde irá fazer os Selects package Controle; import Controle.DbBean; import java.sql.DriverManager; import java.util.Hashtable; import java.util.ArrayList; import java.util.Enumeration; import java.sql.Statement; import java.sql.ResultSet; import java.sql.Connection; import Controle.CadastroVO; import Controle.PerguntaVO; public class DbBean { public String dbUrl = ""; public String dbUserName = ""; public String dbPassword = ""; public void setDbUrl(String url) { dbUrl = url; } public void setDbUserName(String userName) { dbUserName = userName; } public void setDbPassword(String password) { dbPassword = password; } public ArrayList getTurmas(String escola) throws Exception { ArrayList cadastroList = new ArrayList(); try { Connection connection = DriverManager.getConnection(dbUrl, dbUserName, dbPassword); //Linha q insiste em não executar... :p Statement s = connection.createStatement(); String sql = "SELECT Distinct(turma) FROM infoalunos WHERE escola = " + escola + "ORDER BY turma"; ResultSet rs = s.executeQuery(sql); while (rs.next()) { CadastroVO cadastro = new CadastroVO(); cadastro.setTurma(rs.getString("turma")); cadastroList.add(cadastro); } rs.close(); s.close(); connection.close(); } catch (Exception e) { } return cadastroList; } public ArrayList getAlunos(String turma) throws Exception { ArrayList cadastroList = new ArrayList(); try { Connection connection = DriverManager.getConnection(dbUrl, dbUserName, dbPassword); //Linha q insiste em não executar... :p Statement s = connection.createStatement(); String sql = "SELECT nome FROM infoalunos WHERE turma = " + turma + "ORDER BY nome"; ResultSet rs = s.executeQuery(sql); while (rs.next()) { CadastroVO cadastro = new CadastroVO(); cadastro.setNome(rs.getString("nome")); cadastroList.add(cadastro); } rs.close(); s.close(); connection.close(); } catch (Exception e) { } return cadastroList; } Servlet package Controle; import Controle.DbBean; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class ServletController extends HttpServlet { public void init(ServletConfig config) throws ServletException { ServletContext context = config.getServletContext(); DbBean dbBean = new DbBean(); dbBean.setDbUrl("jdbc:mysql://localhost:3306/meubanco"); dbBean.setDbUserName("usuario"); dbBean.setDbPassword("senha"); context.setAttribute("dbBean", dbBean); try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println(e.toString()); } super.init(config); }aceito qlqr tipo de sugestão, ou ainda c tiver algum geito mais facil de fazer isso.....obrigado pela atenção Compartilhar este post Link para o post Compartilhar em outros sites
sublyer 0 Denunciar post Postado Maio 30, 2007 Bom tenta usar JSTL que é mais fácil.Usando JSTL na camada Servlet você pode fazer uma consulta no modelo de seu negócio onde ele preenche o List<Objeto> que então você seta como atributo no request do servlet e então faz o foreach no jsp.. da uma olhadinha na apostila do treinamento de java para web no site da caelum... ta em pfd, bom pra caramba pra quem quer trabalhar com servlets.www.caelum.com.br Flwww, qualquer coisa manda e-mail ae... Compartilhar este post Link para o post Compartilhar em outros sites
yagami 0 Denunciar post Postado Maio 31, 2007 Tem certeza que o sevlet esta iniciando as configurações? Kra acho q você num esta setando as variaveis de conexão com o banco.... ai ele num consegue a conexão então retorno o arraylist vazio, pq antes do try você define o ArrayList. Connection connection = DriverManager.getConnection(dbUrl, dbUserName, dbPassword); yagami Compartilhar este post Link para o post Compartilhar em outros sites