Boa Tarde.
Sigo minha rotina de Estudos da apostila FJ21 da Caelum, e estou fazendo um simples cadastro de Cidade e Estado. (Sei que essas informações eu posso tirar de um banco de dados de CEP, porém a intenção aqui é aprender ComboBox).
O Cadastro de Estado está OK, mas no cadastro de Cidade, preciso de um CB, que irá trazer a UF do estado, e gravar no Banco de Dados o código do mesmo.
Tentei da seguinte maneira, mas não deu certo:
EstadoDAO:
public List<Estado> getLista(){
try{
/*
* Instancia a lista
*/
List<Estado> estados = new ArrayList<Estado>();
PreparedStatement stmt = conectar.prepareStatement("" +
"select * from estado");
ResultSet rs = stmt.executeQuery();
while(rs.next()){
Estado novoEstado = new Estado();
novoEstado.setNomeEstado(rs.getString("nomeEstado"));
novoEstado.setUfEst(rs.getString("uf"));
estados.add(novoEstado);
}
stmt.close();
rs.close();
return estados;
}catch (SQLException e) {
throw new RuntimeException(e);
}
}
AdicionaEstadoServlet:
public class AdicionaCidadeServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//PrintWriter saida = response.getWriter();
String nomeCidade = request.getParameter("nomeCidade");
String estado = request.getParameter("estado");
Cidade novaCidade = new Cidade();
novaCidade.setNomeCidade(nomeCidade);
novaCidade.setEstado(Long.parseLong(estado));
CidadeDAO dao = new CidadeDAO();
dao.adiciona(novaCidade);
RequestDispatcher rd = request.getRequestDispatcher("/cidade-adicionado.jsp");
rd.forward(request, response);
//super.service(arg0, arg1);
}
}
JSP:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<body>
<form action="adicionaCidade">
Nome: <input type="text" name="nomeCidade" /><br />
<select name="cbEstado">
<c:forEach var="estado" items="${dao.lista}">
<td>${estado.nomeEstado}</td>
<td>${estado.ufEst}</td>
</c:forEach>
</select>
<select name="cbEstado">
<c:forEach var="estado" items="${dao.lista}">
<option value="${estado.nomeEstado}">${estado.ufEst}</option>
</c:forEach>
</select>
<input type="submit" value="Gravar" />
</form>
</body>
</html>
Usei duas maneiras no JSP, mas ambas trazem um ComboBOX vazio, alguém pode me ajudar? mostrar onde errei?
Grato!