Carregar Select com Servlet

2 respostas
hfk

Ola, ah todos !!!
pessoal minha duvida é a seguinte, tenho dois selects em uma pagna jsp, um com os estados e outro com cidades, como eu deveria fazer para que ao ser selecionado um estado no select estado, eu carregar altomaticamente o outro select, sem iteração do usuario?, acho que consigo fazer, mas usando scriptles, Quero fazer só com servlet alguem aí ja fez algo parecido que possa me dar uma dica, ou me indicar um link que resolvar expecificamente este tipo de ploblemas ???

2 Respostas

davidbuzatto

Usando Ajax e uma boa biblioteca Javascript como a jQuery você consegue isso facilmente.

[]´s

leandro.alves

Também uso jQuery !

Na Servlet vc poderia gerar um xml/json :

response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setContentType("text/xml;charset=UTF-8");

PrintWriter out = response.getWriter();
StringBuilder sb = new StringBuilder();

sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");            
sb.append("<root>");

try {

    for(CargoBean cargo : lista){
            	
        sb.append("<cargo>");

	    sb.append("<codigo><![CDATA[");
	        sb.append(cargo.getCodigo());
	    sb.append("]]></codigo>"); 
		     	 	
	    sb.append("<descricao><![CDATA[");
	        sb.append(cargo.getDescricao());
	    sb.append("]]></descricao>");
            	 
         sb.append("</cargo>");
            	
     }

}finally{

    sb.append("</root>");
				
    out.print(sb.toString());
    			
    out.flush();
    			
    out.close();
    			
}

E um script do tipo:

jQuery.ajax({
        type: "POST",
        async: true,
        url: ("getcargos.do"),
        data: ("param=" + "${value}") ,
        cache : false,
        dataType: "xml",
        success: function(xml) {
            jQuery(xml).find('cargo').each(function(){

                codigo= jQuery(this).find('codigo').text();

                descricao = jQuery(this).find('descricao').text();

           });
        },
        erro: function() {
            //msg de falha

        }
    });

Ai dentro do ‘each’ você popula seu campo da maneira que achar mais conveniente.

Existem várias outras maneiras… mas essa é bem legal !

Criado 6 de outubro de 2010
Ultima resposta 7 de out. de 2010
Respostas 2
Participantes 3