Enviar todo o form via DWR

4 respostas
J

Olá amigos,
Existe alguma forma simples de mandar todos os valores de um form para uma classe sem ter que referenciar um por um?

Hoje eu estou fazendo assim:

ClasseJava.IncluiForm($(‘inID’).value,$('Nome).value,$(‘etc…’).value, callback);

Tem como “pegar” todos de uma vez e mandar direto estilo um POST??

Desde ja agradeço

Abraços

Jomello

4 Respostas

J

Bom esse eu resolvi fazendo uma varredura no form pegando todos os valores dos campos e colocando em uma ARRAY, depois mando para o meu metodo java via dwr e depois percorro todo o array novamente monto o insert/update e gravo.

Mas será que nao tem um jeito de dar um POST via DWR??? :slight_smile:

(Aja dedo para digitar todos os campos de todos os forms :smiley: )

Abraços

Jomello
H

Cara é bem simples…:smiley:

Imagina que vc tem um Bean que os nomes DAS PROPRIEDADES desse bean SÃO OS MESMOS que estao no form certo :smiley:

Ai vc faz…

Seu javasrcipt
function enviaFormulario(){
var bean = DWRUtil.getValues("nomedoformulario");

FacadeAjax.seuMetodo(bean);
}

Classe java

public void seuMetodo(Bean bean){
      //Mais nada seu bean ta populado :wink: 
}

Lembrando claro que vc tem que mapear esse bean no seu DWR.xml e que no formulario o ID de cada campo tem que ter o nome da propriedade do seu bean…

[input type="text" id="propriedade" name="propriedade'/]

Simples e fácil :smiley:

PS: substitui o < pelo [.

Espero ter ajudado…estou preparando um artigo exatamente sobre isso…com mais detalhes e algumas dicas para a java magazine…
Artigos na java magazine sobre DWR…
http://www.devmedia.com.br/visualizacomponente.aspx?comp=3284&site=6

Meu blog…
www.handersonfrota.com.br

Abraços e boa sorte.

S

Pessoal,

Estou pesquisando sobre DWR e tive uma dificuldade de enviar todos os dados do form para minha classe, alias passar literalmente o form.

Debugando minha aplicação percebi que os dados chegam até o bean de forma textual. Ao invés de chegar os valores do form chegam simplesmente a estrutura dos campos do form, tipo campo1:param0:c0:e0,campo2:param0:c0:e1: ou algo teste tipo.

A maneira abaixo foi a única que apareceu alguma coisa na tela, mas sei que não esta correta

//classeJava

public void enviaFormulario(String div, String form){

dwr.util.setValue(div,form);

}
Acho que seria assim…

//classeJava

public void enviaFormulario(String div, Map form){

dwr.util.setValue(div,form);

}

//chamadaJSP
<input type=“button” onclick=“bean.enviaFormulario(‘div’,dwr.util.getValue(“form”))”>

Gostaria de algum auxilio para saber como enviar e receber dados do form de uma forma direta, sem criar javascript.

OBS:. Lembrando que consegui realizar testes passando um campo ou mais de um como parametro.

H

Olá tudo bem.

"Bom esse eu resolvi fazendo uma varredura no form pegando todos os valores dos campos e colocando em uma ARRAY, depois mando para o meu metodo java via dwr e depois percorro todo o array novamente monto o insert/update e gravo. "

O_O cara pelo amor de deus…putz…você não precisa fazer isso.
Bastava fazer: var bean = dwr.util.getValues(“nomeDoFormulario”); SÓ ISSO.

Mas vamos lá…

Seu bean: Pessoa: nome, idade; ok ? gettes e settes de cada um.

Seu form…

&lt;form... name="formularioExemplo"&gt;
&lt;input name="nome"...
&gt;&lt;input name="idade"...

Para enviar…

var bean = dwr.util.getValues("formularioExemplo");

FacadeAjax.enviaFormulario(bean, {callback....});

Seu método ficara algo assim

public void enviaFormulario(Pessoa pessoa){
....
}

Só isso cara…da uma olhada nos artigos, acho que você ainda não entendeu como o DWR funciona.
http://www.handersonfrota.com.br/artigos-tutoriais/dwr/

Outra coisa…você colocou…

public void enviaFormulario(String div, String form){
dwr.util.setValue(div,form);
}

De onde você tirou isso ?

Tem como você utilizar sim o DWR no lado do JAVA mas dessa forma está errada…blz ?

Cara aconselho você da uma olhada nos artigos que passei, pois tem tudo sobre o DWR. E seria bom para você entender mesmo como ele funciona, pois acho que você não entendeu.

>

Criado 18 de janeiro de 2007
Ultima resposta 11 de fev. de 2009
Respostas 4
Participantes 3