JavaScript chamando Servlet

8 respostas
R

Pessoal estou querendo fazer um JAVASCRIPT chamar um servlet.
Estou usando o struts 1.*

Criei essa função js onde esta sendo chamada no evento onchange de um combobox
para fazer a chamada do Servlet.

function loadservlet_onchange() {
  document.location.href = "/AlimentadorServletAction";
}

Esse servlet vai fazer uma busca no banco e
setar um request para que eu consiga recuperar no meu form os valores.
Estou usando dessa forma pois não quero que a pagina se carregue ao buscar
dados no banco.

Mas ao alterar a combo ocorre o erro 404 não encontrado.
Alguém pode me dar umas dicas.

Obrigado

8 Respostas

R

Olá amigo,

O que você quer fazer é AJAX, não é? Dá uma pesquisada na Web sobre AJAX + Struts. Tem um pouco de AJAX aqui: http://pt.wikipedia.org/wiki/AJAX_(programa%C3%A7%C3%A3o)

F

Experimente procurar pelo DWR, ele vai fazer isso parecer brincadeira de criança :slight_smile:

R

O problema é que a maioria dos exemplos eles vão buscar dados em um xml ou js…
No meu caso precisaria de buscar dados dentro de um banco…
Vi vários exemplos mas a coisa é meio complexa ou eles fazem ficar complexo…

R

rodsm:
O problema é que a maioria dos exemplos eles vão buscar dados em um xml ou js…
No meu caso precisaria de buscar dados dentro de um banco…
Vi vários exemplos mas a coisa é meio complexa ou eles fazem ficar complexo…

Você vai ter que trazer os dados, colocar em um DIV e usar DOM para pegar esses dados e fazer o que você quer. A primeiro momento é assim o que eu faria.

R

Sim mas como esse retorno vai vir, o meu servlet poderia dar esse retorno, mas como o JS vai ler as informações retornada e gerar o combobox.
Eu consegui chamar o servlet através do GetXmlHttpObject e enviei um request.getParameter com a informação que precisava para o servlet, fiz a busca no banco e setei um
request.setattribute para o form, esse atributo foi HASHMAP com chave e valor, mas e como vou montar um combobox com esse hash no JS, em JSP consuegui montar um for, mas esse não vai
ser atualizado dinamicamente então não ficou legal.

P

De uma olhada no Prototype:
http://www.sergiopereira.com/articles/prototype140.js.ptBR.html

Site oficial
http://www.prototypejs.org/learn/introduction-to-ajax

Exemplo no site do VRaptor:
http://www.vraptor.org/pt/ajax.html

R

Putzzz deu certo usando esse links… valw mesmo. Criei uma função chamaservlet enviando um parametro ID(ex) e outro recebe dados do servlet.
Só um probleminha, no servlet precisei buscar informações dentro do banco, porém eu já tenho um objeto do form onde guarda
as informações que preciso.
Como faço para enviar o Objeto do form para o servlet?
E lá eu manipular esse objeto?

P

Com prototype é assim:

function ajaxRequest() {
                var url = 'suaServlet';
                //$F = pega o conteudo do campo do html e monta os parametros
                 var pars = 'empID=' + $F('empID') + '&ano=' + $F('ano');
                //create the ajax request
                var myAjax = new Ajax.Request(
                        url,
                        {
                                method: 'get',
                                parameters: pars,
                                onComplete: showResponse
                        }
                );

        //outras coisas :)
}

E na Servlet vc pega via request:

request.getParameter("empID");
...
Criado 28 de março de 2009
Ultima resposta 3 de abr. de 2009
Respostas 8
Participantes 4