O documento apresenta um treinamento sobre Direct Web Remoting (DWR), um framework Java para desenvolvimento de aplicações web com Ajax. É descrito o que é DWR, sua arquitetura cliente-servidor, configuração para mapeamento de classes Java e chamadas assíncronas e síncronas via JavaScript. Também são explicadas a classe utilitária DWR, comunicação reversa entre cliente e servidor, biblioteca DWRUtil e o formato JSON.
3. O que é DWR?
Bliblioteca Java (jar);
Framework Open Source;
Encapsula o AJAX;
Acessa métodos java via javascript de maneira
assíncrona e síncrona.
Faz a conversão de dados (collections, POJOs, XML e
dados binários (.jpg, .pdf etc));
Ajax reverso (bowser → server / server → browser);
Provê a integração com Spring, Struts, Guice, Hibernate
e outros.
4. Está arquitetado em duas partes:
– Client-Side:
Javascript rodando no browser;
DWR encapsula o XMLHttpRequest
– Server-Side:
• Servlet Java rodando no servidor;
• Processa as requisições e retorna ao client;
• Processa as requisições e invoca o client (ajax
reverso).
Arquitetura
6. Biblioteca do DWR www.directwebremoting.org
Mapeamento do servlet do DWR no web.xml;
Criação do arquivo dwr.xml no diretório WEB-INF
Mapeamento das classes java no dwr.xml
Criação da página, adição do(s) script(s) gerado(s) pelo
DWR e invocação dos métodos Java via javascript.
Configuração
9. Configuração – dwr.xml
Nesse arquivo são definidas as classes (controladores), beans e
enumarações que que o DWR fará comunicação e conversão por meio d
javascript.
10. Import dos scripts do DWR.
Configuração – (front-end)
11. JavaScript -
Função Assíncrona
Configuração – chamada no front-end
JavaScript -
Função Síncrona
14. Biblioteca Utilitária – DWRUtil
Facilita o desenvolvimento JavaScript;
Métodos utilitários para manipulação da estrutura HTML.
15. Funções
$(id) / DWRUtil.byId(id) – Retorna um objeto
DWRUtil.getValue(id) - Retorna o valor de um objeto
DWRUtil.getValues(formId) - Retorna um
objeto(JSON)
DWRUtil.getText(id) – Retorna o texto de listas
(options);
DWRUtil.setValue(id, valor) – Seta o valor de um
objeto;
DWRUtil.setValues([JSON]) – Seta os valores em um
conjunto de atributos de tela
Biblioteca Utilitária – DWRUtil
16. Funções
DWRUtil.addOptions(id, array) – Adiciona vários
options a um select;
DWRUtil.addRows(id, array, cellfuncs, [options]) –
Preenche uma tabela;
DWRUtil.removeAllOptions(id) – remove todos os
options ou ul de um objeto;
DWRUtil.removeAllRows(id) – remove todas as linhas
de uma tabela
Biblioteca Utilitária - DWRUtil
17. JSON - JavaScript Object Notation
Usado para troca de dados;
Alternativa aos XMLs;
Exemplo: