Combo jsp + dwr + Ajax  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
jwcunha
JavaChild

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

Vamos montar um exemplo completo em que você vai clicar em um botão e exibir as informações do ser servidor em uma div.

Primeiramente: adicione os jar's do dwr.
Considerando que vc está usando o netbeans:

0-Criar um projeto chamado DWRTest e uma pacote chamado dwr
0.1-Criar uma classe chamada RemoteFunctions
1-selecionar na árvore do projeto: library e com o botão direito adicionar para o jar, lembre-se de não colocar os jar junto dos jars do seu servidor (ou você irá viver o inferno do classloader)
2-alterar o web.xml adicionando os dois blocos abaixo:






Agora a nossa jsp. index.jsp

  • <script src='dwr/interface/RemoteFunctions.js' type='text/javascript'>
    </script>
    <script type = "text/javascript">
    function dwrGetInfo() {
    RemoteFunctions.getServerInfo(dwrLoadInfo);
    }
    function dwrLoadInfo(data) {
    DWRUtil.setValue("reply", data);
    }
    </script>
    <p>
    Query Server: <input value="Execute" type="button" onclick="dwrGetInfo();"/>
    <br/>
    Server Information: <spam id="reply" style="background:#eeffdd;"></span>
    </p>


  • Testa e me fala, não precisa criar o projeto do zero do jeito que fiz aqui não mas é um guia para ir fazendo passo-a-passo. Peguei alguns trechos que tinha aqui de algo que fiz, qq coisa posta aí, posso ter colocado algo meio estranho.

    T+.

    Creio que você tenha esquecido dos mapeamentos no web.xml

    Jefferson Wellington da Cunha

    Skype: jwcunha

    [MSN]
    bebad
    JavaEvangelist
    [Avatar]

    Membro desde: 27/07/2006 19:56:35
    Mensagens: 303
    Offline


    cara achei mto legal esse topic, mas nao entendi quase nada!!

    fiz isso que vc pretende fazer de 1 maneira mto mais simples cara,
    consulta a revista JavaMagazine Ed 28.
    http://javamagazine.com.br/downloads/jm28/jm28-ajax.zip


    espero q te ajude
    flw

    Admin.. PATCH your box now, or DIE!!!

    Oracle Certified Associate, Java SE 5/SE 6
    Oracle Certified Professional, Java SE 6 Programmer
    Oracle Certified Professional, Java ME 1 Mobile Application Developer
    Oracle Certified Expert, Java EE6 Web Services Developer
    Oracle Certified Master, Java EE 5 Enterprise Architect
    Oracle Certified Professional, Java EE 5 Web Component Developer
    Oracle Certified Professional, Java EE 5 Business Component Developer

    representing the old school defacers brazil:
    red_eye
    ATH
    ir4dex
    hax0rs lab
    IoN
    r00t_system
    kernel_panic

    bebad was here.
    almarti
    JavaBaby
    [Avatar]

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

    Fiz do jeito que estava, apenas alterei



    para



    Porem retornou o meso erro: RemoteFunctions não está definida.
    [Email] [WWW] [MSN]
    jwcunha
    JavaChild

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

    Confira se na sua app vc tem o pacote com.DWRTest.dwr

    Jefferson Wellington da Cunha

    Skype: jwcunha

    [MSN]
    almarti
    JavaBaby
    [Avatar]

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

    Sim, o criei manualmente para colocar a classe que voce sugeriu
    [Email] [WWW] [MSN]
    almarti
    JavaBaby
    [Avatar]

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

    Apos um pouco de esforço consegui configurar o dwr (Alias este era o meu erro: em algum momento digitei drw e não dwr) e o meu combo passou a funcionar.

    Estou tendo dificuldades agora no seguinte: carrego um combo e al selecionar este preciso carregar outros dois. Coloquei as funções javascript no onchange. Porem, apenas um ou outro combo é carregado. Se eu tentar carregar outros itens a partir da terceira ou quarta tentativa, então sim os combos são carregados. O que pode estar errado?
    [Email] [WWW] [MSN]
    jwcunha
    JavaChild

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

    almarti wrote:Apos um pouco de esforço consegui configurar o dwr (Alias este era o meu erro: em algum momento digitei drw e não dwr) e o meu combo passou a funcionar.

    Estou tendo dificuldades agora no seguinte: carrego um combo e al selecionar este preciso carregar outros dois. Coloquei as funções javascript no onchange. Porem, apenas um ou outro combo é carregado. Se eu tentar carregar outros itens a partir da terceira ou quarta tentativa, então sim os combos são carregados. O que pode estar errado?



    manda seus js para darmos uma olhada!

    Jefferson Wellington da Cunha

    Skype: jwcunha

    [MSN]
    almarti
    JavaBaby
    [Avatar]

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

    JS

    function montaComboFunc(listBeans){
    DWRUtil.removeAllOptions("cmb_Func");
    DWRUtil.addOptions("cmb_Func", listBeans, "id", "nome");
    }


    function carregaComboArea(Campo, Tabela, CampoCondicao, id){
    FacadeAjax.selectAllUnidade(montaComboArea,Campo, Tabela, CampoCondicao, id);
    }
    function montaComboArea(listBeans){
    DWRUtil.removeAllOptions("cmb_Area");
    DWRUtil.addOptions("cmb_Area", listBeans, "id", "nome");
    }

    Chamada

    <script type="text/javascript" src='<%=request.getContextPath() %>/dwr/interface/FacadeAjax.js'></script>
    <script type="text/javascript" src='<%=request.getContextPath() %>/dwr/engine.js'></script>
    <script type="text/javascript" src='<%=request.getContextPath() %>/dwr/util.js'></script>
    <script type="text/javascript" src='../js/combos.js'></script>

    <select name="cmb_empresa"
    class="form"
    style="width:100%"
    onchange="javascript:carregaComboArea('area', 'Tab_Area', 'id_empresa', this.value);"
    onchange="javascript:carregaComboFunc('nome', 'Tab_Usuario', 'id_empresa', this.value); "
    >
    [Email] [WWW] [MSN]
    vcjava
    Entusiasta Java

    Membro desde: 23/02/2005 13:28:58
    Mensagens: 23
    Offline

    No que se dis respeito a configuração, verifique estes items e veja se estao coretos, na pasta WEB-INF crie um folder chamado lib e joge la o DWR.jar
    O servelet do dwr no web.xml tb tem que estar configurado da seguinte forma
    ------------------
    <servlet>
    <servlet-name>dwr-invoker</servlet-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>
    ----------------------------------------------------------------
    vc tb tem q ter na mesma pasta de web inf um arquivo dwr.xml para adicionar os create, convert e etc.


    espero ter ajudado um pouco t+
    drix
    JavaBaby
    [Avatar]

    Membro desde: 16/06/2006 14:42:48
    Mensagens: 84
    Localização: Maringá - Paraná
    Offline

    jwcunha wrote: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?


    JWCunha, uso o VRaptor, e gostaria de montar um esquema parecido com o que estamos discutindo aqui.
    Como vc faz através deste Framework?

    Preciso preencher um Combo baseado no que foi selecionado no combo anterior.

    JDRIx
    =/=/=/=/=/=/=/
    Café? Servido?
    [MSN]
    griffith
    Smalltalk

    Membro desde: 28/01/2008 16:54:06
    Mensagens: 1
    Offline

    Caro amigos, criei um combo aninhado e no IE funciona perfeitamente, contudo nao no Firefox a lista no combo não é exibida assim como nenhum erro. Verifiquei pelo firebug e pelo visto a lista de informações para serem adicionadas no combo é buscada contudo a lista nao é incluida na tela.. É só no firefox que isso acontece.. Ie esta perfeito. DEsde já grato.
     
    Índice dos Fóruns » Java Básico
    Ir para:   
    Powered by JForum 2.1.8 © JForum Team