sábado, 10 de abril de 2010

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('');
});
}
})


Projeto de exemplo no Google Code.

Um comentário:

  1. The loans seem to be essential for guys, which would like to start their own career. By the way, this is easy to receive a sba loan.

    ResponderExcluir