Combo jsp + dwr + Ajax  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
almarti
JavaBaby
[Avatar]

Membro desde: 05/12/2006 10:59:14
Mensagens: 91
Offline

Alguem tem algum exemplo de preenchimento de combo com Ajax utilizando o dwr. Tenho tentado com exemplos da net mas ainda não consegui. Obrigado.
[Email] [WWW] [MSN]
_Renatu
Virtual Machine Man
[Avatar]

Membro desde: 04/08/2004 19:47:38
Mensagens: 597
Offline

Então

No próprio site do DWR tem....

Clique em documentation.... Examples... tem alguns exemplos bons lah...

vc cai nessa pagina:

http://getahead.ltd.uk/dwr/examples

Tem umas ferramentas boas, tipo o DWRUtils...

Renato Freitas
Compartihe Arquivos do seu curso ou faculdade no ebaH
Patentes Brasileiras
Patentes de Venezuela
Patentes de Chile
Patentes de Mexico
Patentes de Colombia
Patentes de Argentina
Patentes Online
http://www.twitter.com/renatoebah
[WWW] [ICQ]
jwcunha
JavaChild

Membro desde: 06/10/2006 13:36:40
Mensagens: 107
Localização: Belo Horizonte
Offline

Caro amaratti, não sei em que ponto está a sua aplicação mas como já estive utilizando o dwr como opção para ajax seu tópico me chamou a atenção. Caso ainda esteja no início sugiro que opte pelo vRaptor como um framework completo que tem suporte a ajax, afinal você precisa preencher um combo vindo, provavelmente, de uma base de dados (xml, sgbd's, ....) logo a interação fica mais simples mas sem grandes ilusões pois vai precisar de um tanto considerável de javascript e conhecimento da árvore DOM pelo menos um tantinho.

Caso opte por esta solução mande aí, estou neste ponto da minha aplicação e tento bastante sucesso. Utilizo [Hibernate + Annotations] ( M ) + vRaptor (C) + [JSP+HTML+CSS+JS+AJAX] (V)

ou siga o exemplo do dwr que tb não é nada difícil: http://getahead.ltd.uk/dwr/examples/lists
Qual o seu problema neste exemplo?

Jefferson Wellington da Cunha

Skype: jwcunha

[MSN]
almarti
JavaBaby
[Avatar]

Membro desde: 05/12/2006 10:59:14
Mensagens: 91
Offline

Minha dificuldade é exatamente esta: preciso preencher combos com resultados de sgdb. Estou usando netbeans (É o que posso usa aaui na empresa) Vou baixar o vRaptor para testar.
[Email] [WWW] [MSN]
almarti
JavaBaby
[Avatar]

Membro desde: 05/12/2006 10:59:14
Mensagens: 91
Offline

O exemplo do site que utilizei está em

http://www.guj.com.br/posts/list/21957.java

O que acontece é que me retorna um erro de javascript dizendo que DWRUtil não pode ser encontrado.
[Email] [WWW] [MSN]
jwcunha
JavaChild

Membro desde: 06/10/2006 13:36:40
Mensagens: 107
Localização: Belo Horizonte
Offline

almarti wrote:Estou usando netbeans (É o que posso usa aaui na empresa) Vou baixar o vRaptor para testar.


Amarati, primeiramente vamos ajustar alguns conceitos: netbeans é sua IDE de desenvolvimento assim como o eclipse. O vRaptor é um framework de desenvolvimento java para web.

Quanto ao erro "DWRUtils" não encontrado verifique se você está inserido o script: <script src='[b]dwr/util.js[\b]' type='text/javascript'></script> bem como se o caminho (em destaque) está correto.

Dê um retorno.


Jefferson Wellington da Cunha

Skype: jwcunha

[MSN]
almarti
JavaBaby
[Avatar]

Membro desde: 05/12/2006 10:59:14
Mensagens: 91
Offline

Bom, realmente este endereço estava errado. Agora uma explicação por favor:

<script type="text/javascript" src="dwr/interface/Publico.js"></script>

Eu não criei a Publico.js e sim uma classe chamada publico. É preciso criar estre js? Como? O erro que dá agora é que Publico não esta definido.
[Email] [WWW] [MSN]
jwcunha
JavaChild

Membro desde: 06/10/2006 13:36:40
Mensagens: 107
Localização: Belo Horizonte
Offline

almarti wrote:Bom, realmente este endereço estava errado. Agora uma explicação por favor:

<script type="text/javascript" src="dwr/interface/Publico.js"></script>

Eu não criei a Publico.js e sim uma classe chamada publico. É preciso criar estre js? Como? O erro que dá agora é que Publico não esta definido.

almarti, não precisa criá-los não. O próprio DWR referencia estes js's a partir do nome do método remoto que você indicou como @RemotMethod de uma classe que você indicou como @RemoteProxy.

Jefferson Wellington da Cunha

Skype: jwcunha

[MSN]
almarti
JavaBaby
[Avatar]

Membro desde: 05/12/2006 10:59:14
Mensagens: 91
Offline

Desculpe a chatisse (Mas sou iniciante) como fazer estas Indicações?

método remoto como @RemotMethod
classe como @RemoteProxy.
[Email] [WWW] [MSN]
jwcunha
JavaChild

Membro desde: 06/10/2006 13:36:40
Mensagens: 107
Localização: Belo Horizonte
Offline

almarti wrote:Desculpe a chatisse (Mas sou iniciante) como fazer estas Indicações?

método remoto como @RemotMethod
classe como @RemoteProxy.


Chatice nada, lancei esta para ver se teria interesse. É o seguinte, você pode optar por utilizar o DWR configurando o arquivo dwr.xml (que particularmente não gosto) ou simplesmente adicionar o servlet do dwr (conforme o guia do mesmo) no arquivo web.xml e expor seus métodos da seguinte maneira. Suponha que vc tenha a classe Carro e quer expor o método getList(), faça:

@RemoteProxy
class Carro{
List lstCarros = new List();
....
@RemoteMethod
public getList(){
return lstCarros;
}
}

É isso, o uso de anotações no dwr.

T+

Jefferson Wellington da Cunha

Skype: jwcunha

[MSN]
almarti
JavaBaby
[Avatar]

Membro desde: 05/12/2006 10:59:14
Mensagens: 91
Offline

Vamos ver então se entendi: (isto pode servir para outras pessoas tambem)

Minha classe Publico.class está assim:


Ela pega Pessoa.class

No entanto, configurei servlet no xml.

dwr.xml

<dwr>
<allow>
<create creator="new" javascript="Publico">
<param name="class" value="classes.Publico"/>
</create>
<convert converter="bean" match="classes.Publico"/>
</allow>
</dwr>


web.xml

<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>


Parece que estou com conflitos de configurações...
[Email] [WWW] [MSN]
jwcunha
JavaChild

Membro desde: 06/10/2006 13:36:40
Mensagens: 107
Localização: Belo Horizonte
Offline

amigo, teste com as anotações que lhe disse, pq não cheguei a configurar o dwr.xml como disse acho uma tarefa inglória.


Jefferson Wellington da Cunha

Skype: jwcunha

[MSN]
almarti
JavaBaby
[Avatar]

Membro desde: 05/12/2006 10:59:14
Mensagens: 91
Offline

Fiz conforme indicado colocando as anotações, porém Publico continua indefinido. Será que há mais alguma configuração que deixei escapar?

As classes ficaram assim:

package classes;
import java.util.*;
import org.directwebremoting.annotations.RemoteProxy;

@RemoteProxy public class Publico
{
private static Map pessoas = new LinkedHashMap();

public String addPessoa(ComponenteCombo p)
{
if (pessoas.containsKey(p.getId()))
{
return "ERRO: Registro ja existente";
}

pessoas.put(p.getId(), p);
return new Date().toString();
}

public Collection getPessoas()
{
return pessoas.values();
}
}


e


package classes;

import java.util.*;
import org.directwebremoting.annotations.RemoteMethod;

public class ComponenteCombo {


private int id;
private String nome;

public ComponenteCombo(){}

@RemoteMethod public int getId() {
return id;
}

@RemoteMethod private void setId(int id) {
this.id = id;
}


@RemoteMethod public String getNome () {
return nome;
}

@RemoteMethod public void setNome (String nome) {
this.nome = nome;
}

}
[Email] [WWW] [MSN]
jwcunha
JavaChild

Membro desde: 06/10/2006 13:36:40
Mensagens: 107
Localização: Belo Horizonte
Offline

Vc precisa colocar @RemoteMethod acima do método que deseja ser acessado assincronamente da mesma classe que vc indicou como @RemoteProxy.


Pelo seu exemplo vc colocou @RemoteProxy em Publico e @RemoteMethod nos métodos de ComponenteCombo.


Jefferson Wellington da Cunha

Skype: jwcunha

[MSN]
almarti
JavaBaby
[Avatar]

Membro desde: 05/12/2006 10:59:14
Mensagens: 91
Offline


package classes;
import java.util.*;
import org.directwebremoting.annotations.RemoteProxy;
import org.directwebremoting.annotations.RemoteMethod;

@RemoteProxy public class Publico
{
private static Map pessoas = new LinkedHashMap();

@RemoteMethod
public String addPessoa(ComponenteCombo p)
{
if (pessoas.containsKey(p.getId()))
{
return "ERRO: Registro ja existente";
}

pessoas.put(p.getId(), p);
return new Date().toString();
}

@RemoteMethod
public Collection getPessoas()
{
return pessoas.values();
}
}


Mesmo que esteja correto, acredito que á outra configuraçãop, talvez não incluido o jar corretamente, algumas coisa assim. Poque Publico continua indefinido.
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team