Até ai beleza o meu problema é que eu preciso do id do estado para utilizar como parâmetro em um select no banco de dados só que não sei como pegar isso na servlet sendo que o ID é gerado pela EL.
Até ai beleza o meu problema é que eu preciso do id do estado para utilizar como parâmetro em um select no banco de dados só que não sei como pegar isso na servlet sendo que o ID é gerado pela EL.
Grato,
Estava faltando o id e name do select, e adicionar o atributo “value” no option.
<%@pagelanguage="java"contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@taglibprefix="c"uri="http://java.sun.com/jstl/core_rt"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"><title>WebAgenda - Selecione o estado, a cidade e o estabelecimento.</title></head><body><h2>WebAgenda</h2><h4>Selecione sua localidade.</h4><br/><label>Estado:</label><formaction="SrvEstabelecimento?carregaCidade"method="post"name="estadoFrm"><selectname="estado"id="estado"><c:forEachvar="estado"items="${listaEstados}"><optionvalue="${estado.dom02Id}"><c:outvalue="${estado.dom02Sigla}"/></option></c:forEach></select><inputtype="submit"value="Selecionar"/></form><br/><label>Cidade:</label><formaction="SrvEstabelecimento?carregaEstabelecimento"method="post"name="cidadeFrm"><selectname="cidade"id="cidade"><c:forEachvar="cidade"items="${listaCidade}"><optionvalue="${cidade.dom03Id}"><c:outvalue="${cidade.dom03Nome}"/></option></c:forEach></select></form><br/><label>Estabelecimento:</label><table><tr><td>Nome</td><td>Telefone</td><td>Endereço</td></tr><c:forEachvar="estabelecimento"items="${listaEstabelecimento}"><trname="${estabelecimento.idCad001}"><td>${estabelecimento.c01Fantasia}</td><td>${estabelecimento.c01Fone}</td><td>${estabelecimento.c01Endereco}</td><td><ahref="SrvEstabelecimento?visualizaAgenda"><inputtype="button"value="Visualizar Agenda"/></a></td></tr></c:forEach></table></body></html>
...}elseif(acao.equals("carregaCidade")){AnsDom03DAOcidade=newAnsDom03DAO();intidEstado=Integer.parseInt(request.getParameter("estado"));cidade.listarCidades(idEstado);request.setAttribute("listaCidade",cidade);// Acho q o problema esta aqui, está passando a referencia da variavel cidade, e não a lista de cidadesrequest.getRequestDispatcher("estabelecimentos.jsp").forward(request,response);}...
fiz isso pra carregar o estado mas nao pra cidade…heheh de novo vlw!..
só uma ultima duvida aproveitando o topico…
no caso quando eu peço pra carregar o com as cidades o estado volta a ficar em branco…como posso manter o valor do estado selecionado?
Agradeço a paciencia e a ajuda ate o momento…
Abs
O
orlandogpe
Na sua servlet vc tem q passar um novo atributo.
}elseif(acao.equals("carregaCidade")){AnsDom03DAOcidade=newAnsDom03DAO();intidEstado=Integer.parseInt(request.getParameter("estado"));//será usado para fazer o request na pagina. Obs: passe o atributo com String. Ex: ""+idEstado .request.setAttribute("idEstado",""+idEstado);request.setAttribute("listaCidade",cidade.listarCidades(idEstado));request.getRequestDispatcher("estabelecimentos.jsp").forward(request,response);}
Cara, foi mal esse segundo modo nao vai dar certo pq vc ta usando JSTL, ele so daria certo usando scriptlet na hora q montei o exemplo esqueci desse detalhe, foi mal.
Mas a 1º opção era pra funcionar. Ta tudo certo no código, até fiz um teste aqui e funcionou.
G
gabriel_nunes
a var estado nao funciona só no escopo da onde foi declarado? no caso do c:forEach?
O
orlandogpe
só funciona no escopo do c:forEach
G
gabriel_nunes
estranho cara nao vai mesmo…tentei colocar o EL dentro de atributo do option mas mesmo assim o erro persiste
vou continuar pesquisando aqui… mas por hora obrigado pela ajuda o/
abs
O
orlandogpe
estranho msm…
Se descobrir algo te dou um toque
abraço
G
gabriel_nunes
cara consegui depois de kebrar a cuca…
ficou assim
JSP
<%@pagelanguage="java"contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@taglibprefix="c"uri="http://java.sun.com/jstl/core_rt"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"><title>WebAgenda - Selecione o estado, a cidade e o estabelecimento.</title></head><body><h2>WebAgenda</h2><h4>Selecione sua localidade.</h4><br/><label>Estado:</label><formaction="SrvEstabelecimento?carregaCidade"method="post"name="estadoFrm"><selectname="estado"id="estado"onchange="submit()"><c:forEachvar="estado"items="${listaEstados}"><optionvalue="${estado.dom02Id}"/><c:outvalue="${estado.dom02Sigla}"/></option></c:forEach></select></form><br/><label>Cidade:</label><formaction="SrvEstabelecimento?carregaEstabelecimento"method="post"name="cidadeFrm"><selectname="cidade"id="cidade"onchange="submit()"><c:forEachvar="cidade"items="${listaCidade}"><optionvalue="${cidade.dom03Id}"><c:outvalue="${cidade.dom03Nome}"/></option></c:forEach></select></form><br/><label>Estabelecimento:</label><table><tr><td>Nome</td><td>Telefone</td><td>Endereço</td></tr><c:forEachvar="estabelecimento"items="${listaEstabelecimento}"><trname="${estabelecimento.idCad001}"><td>${estabelecimento.c01Fantasia}</td><td>${estabelecimento.c01Fone}</td><td>${estabelecimento.c01Endereco}</td><td><ahref="SrvEstabelecimento?visualizaAgenda"><inputtype="button"value="Visualizar Agenda"/></a></td></tr></c:forEach></table></body></html>
Servlet
packagemarhysystem.agenda.servlet.cadastro.estabelecimento;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importmarhysystem.agenda.bean.cadastro.Ansdom02;importmarhysystem.agenda.bean.cadastro.Ansdom03;importmarhysystem.agenda.dao.cadastro.AnsDom02DAO;importmarhysystem.agenda.dao.cadastro.AnsDom03DAO;importmarhysystem.agenda.dao.cadastro.Tbcad001DAO;publicclassSrvEstabelecimentoextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;publicSrvEstabelecimento(){super();}protectedvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringacao=request.getQueryString();if(acao.equals("carregaEstado")){AnsDom02DAOestado=newAnsDom02DAO();request.setAttribute("listaEstados",estado.listarEstados());request.getRequestDispatcher("estabelecimentos.jsp").forward(request,response);}elseif(acao.equals("carregaCidade")){AnsDom03DAOcidade=newAnsDom03DAO();AnsDom02DAOestado=newAnsDom02DAO();intidEstado=Integer.parseInt(request.getParameter("estado"));StringsiglaEstado=request.getParameter("siglaEstado");request.setAttribute("listaEstados",estado.listarEstados());//A Diferença ta aqui...simplesmente chamei o metodo de listas os estados novamente!request.setAttribute("listaCidade",cidade.listarCidades(idEstado));request.getRequestDispatcher("estabelecimentos.jsp").forward(request,response);}elseif(acao.equals("carregaEstabelecimento")){Tbcad001DAOestabelecimento=newTbcad001DAO();intidCidade=Integer.parseInt(request.getParameter("cidade"));request.setAttribute("listaEstabelecimento",estabelecimento.listarEstabelecimentos(idCidade));request.getRequestDispatcher("estabelecimentos.jsp").forward(request,response);}}}
Não sei se é o correto mas pelo menos consigo trabalhar agora…mais pra frente quando eu estiver com tempo eu procuro melhor o que você havia explicado
mas mto obrigado mesmo pela atenção e ajuda e fica ai a soluçao pra quem tiver um problema parecido