ComboBox Dinamico Jsp+servlet

8 respostas
F
Ola pessoas, Estou pesquisando o forum a mais de 6 horas e não consigo achar algo para me explicar como faço isso, ja vi que pode ser feito com iframes e com documento[0].submit, mas já testei das duas formas e nao consigo resolver. Alguem poderia dar uma luz. Segue o que estou tentando.
Script

<script language="javascript">
function popapartamento(){   
    document.forms[0].acaoo.value="Pesquisar";   
    document.forms[0].action="ControlApartamento";   
    document.forms[0].submit();
}
</script>
Meu form
<form action="ControlApartamento" method="get" enctype="text/plain"> 
<table width="550" border="0">
  <tr>
  <td><font color="#000033"><b>Apartamentos cadastrados:</b></font></td>
  <td>
	<select name="selnumbloco" onchange="popapartamento();">
	    <% List<Apartamento> listapto = (List<Apartamento>)request.getSession().getAttribute("Aptonum"); %>
	    <% for (int i=0; i<listapto.size(); i++) { %>
	         <option><%= ((Apartamento)listapto.get(i)).getNumerobloco()%></option>
	    <% } %>
	</select>
  </td>
  </tr>
  <tr>
    <td><font color="#000033"><b>Numero do apartamento:</b></font></td>
    <td><input type="text" name="txtnumero" size="30" maxlength="5" value="" ></td>
  </tr>
    <tr>
    <td><font color="#000033"><b>Bloco do apartamento:</b></font></td>
    <td><input type="text" name="txtbloco" size="30" maxlength="5"></td>
  </tr>
</table>
<br /><br />
  <input type="submit" value="Incluir" name="btn">
  <input type="submit" value="Excluir" name="btn">
  <input type="Reset" value="Limpar"> 
</form>
Servlet
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		try{
			//parte do apartamento
			String acaoo = request.getParameter("acaoo");
			HttpSession session = request.getSession(true);
				if ("Pesquisar".equals(acaoo)){
					String popapto = request.getParameter("selnumbloco");
					session.setAttribute("Numeroblocos", popapto);
					ApartamentoDAO aptodao = new ApartamentoDAO();
					List<Apartamento> apartamento = aptodao.Pesquisar();
					request.getSession().setAttribute("Apartamentos", apartamento);
					RequestDispatcher rd = request.getRequestDispatcher("aptapartamento.jsp");
					rd.forward(request,response);
				}
				return;
		    }
		    catch(SQLException e){
		    	e.printStackTrace();
		    }

	}

8 Respostas

F

então alguma boa alma consegue me ajudar?

P

O que você precisa fazer exatamente?, carregar uma lista na combo?

V

nao entendi o que vc quer fazer ??

P

Retire esse scriplet do seu código e use jstl, adicione os jars jstl.jar e standard.jar no classpath do seu projeto:

<select name="selnumbloco" onchange="popapartamento();">
    <option value="">..</option>
    <c:forEach var="Apartamento" items="${Apartamentos}">
        <option value="${Apartamento.codigo}">${Apartamento.descricao}</option>
    </c:forEach>
</select>

Esse codigo e descrição deve ser o mesmo que você popula no DAO.

E no início da página coloque a diretiva do jstl:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@page isELIgnored="false"%>

De jeito que está vai submeter a página a cada mudança de valor no combo, só submeta da primeira vez, ou se depender desse codigo para montar outra informação na tela.

F

Pedrosa:
Retire esse scriplet do seu código e use jstl, adicione os jars jstl.jar e standard.jar no classpath do seu projeto:

<select name="selnumbloco" onchange="popapartamento();">
    <option value="">..</option>
    <c:forEach var="Apartamento" items="${Apartamentos}">
        <option value="${Apartamento.codigo}">${Apartamento.descricao}</option>
    </c:forEach>
</select>

Esse codigo e descrição deve ser o mesmo que você popula no DAO.

E no início da página coloque a diretiva do jstl:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@page isELIgnored="false"%>

De jeito que está vai submeter a página a cada mudança de valor no combo, só submeta da primeira vez, ou se depender desse codigo para montar outra informação na tela.


Sim blz entendi como vc explicou, mas depois que eu alterar o combobox, eu quero que apareça outro combo box com as opções referentes a opção escolhida no combo anterior.
E outra como eu “encaixo” um “If” no meio desse forEach?
Outra duvida, essas JARs que vc mandou eu adicionar, elas vem junto com o JAVA, ou eu tenho que baixar elas em algum canto pra poder adicionar no CLASSPATH?

P

Não, você precisa baixar:

Standard:
http://ftp.unicamp.br/pub/apache/jakarta/taglibs/standard/binaries/jakarta-taglibs-standard-1.1.2.zip

F

Pedrosa:
Não, você precisa baixar:

Standard:
http://ftp.unicamp.br/pub/apache/jakarta/taglibs/standard/binaries/jakarta-taglibs-standard-1.1.2.zip

blz eu tinha pesquisado e ja tinha baixado, tambem ja tinha conseguido colocar o combo pra funcionar, mas como eu faço agora pra quando for selecionado uma opção nele, filtre um segundo combo os as opções em relação a opção selecionada.

F

achei o meu problema, tava faltando um campo hidden no meu formulario.

Criado 27 de novembro de 2007
Ultima resposta 29 de nov. de 2007
Respostas 8
Participantes 3