fbpx

Preencher campo select (DropDown) com Json usando servlet

Essa semana em um trabalho de servlet da faculdade, precisei preencher um campo select do html dinamicamente, retornando os dados do banco de dados.
A solução que eu fiz, foi criar um servlet que retorne os dados no formato Json e depois preenchi o campo select usando um código em jquery, mas poderia ser apenas o ajax.

1. Criar um arquivo servlet.

2. No método “doGet” do servlet, coloque o código


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
Statement curStmt;
Connection con = null;
try {
StringBuilder ret = new StringBuilder();

Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/FaculdadeN50", "postgres", "123456");
curStmt = con.createStatement();
ResultSet rs = curStmt.executeQuery("select ID, Nome from Pessoa order by Nome");

while (rs.next() == true) {
ret.append("{ "ID" : "" + rs.getInt("ID") + "", "Valor" : "" + rs.getString("Nome") + ""},");
}

out.print("[" + ret.toString().substring(0, ret.length() - 1) + "]");
} catch (SQLException e) {}
catch (ClassNotFoundException e) {
} finally {
try {
con.close();
} catch (SQLException e) {}
}
}

3. Na página onde for usar, coloque o campo select (DropDown):



4. E o código javascript(obs: para esse exemplo precisa usar o framework Jquery).


$.ajax({
type: "get",
url: "nomedoservlet", //coloque o nome do servlet
data: null,
dataType: "json",
async: false,
success: function(data) {
$.each(data, function(i, item){
$("#IdDoCampoSelect").append(''+ item.Valor +'');
});
}
})

Projeto de exemplo no Google Code.

Leave a reply

Todos os direitos reservados © 2023