Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

killer_

Carregar uma combo usando JSP

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.