Categoria AJAX

Carregando HTML usando o DWR

Um método bem simples e muito interessante do DWR é o forwardToString(”JSP/HTML”). Você tem mais ou menos o seguinte cenário:

Você deseja carregar uma determinada página ou trecho de código que está salvo em um html ou jsp dentro da sua aplicação e quer que essa página seja carregada em um deterninado local, normalmente uma DIV, TBODY. Veja como é simples:

Vamos inicialmente criar no seu FacadeAjax um método que irá receber uma determinada URL e vai devolver essa requisição como HTML puro. Veja o código abaixo:

public String carregaPagina(String url) throws ServletException, IOException{
return WebContextFactory.get().forwardToString(url);
}

Agora vamos fazer o JavaScript que irá executar esse método:

function carregar(){
var url = DWRUtil.getValue("url");
FacadeAjaxSession.carregaPagina(url,{
callback:function(data){
     DWRUtil.setValue("pagina", "");
     DWRUtil.setValue("pagina", data, {escapeHtml:false});
}
});

}

O que ele basicamente faz é fazer a chamada ao método carregaPagina passando como parâmetro a página que você deseja carregar e no retorno dessa chamada(callback) ele carrega a página na tela utilizando o DWRUtil.setValue(). Observe que no DWRUtil.setValue() eu passo mais um parâmetro que é o: escapeHtml:false, que vai evitar que o browser carregue o código html no lugar do resultado. Sem esse parâmetro ele iria mostrar as tag do html.

HTML

Carrega página

Carregar Página

No HTML passado acima temos apenas um input onde deverá conter a página que você deseja carregar e uma tabela com um link que executará a função do JavaScript. Temos abaixo desse link a tag TBODY que é onde vamos carregar o nosso html.

Queremos carregar o restante dessa tabela(no nosso exemplo estamos carregando um trecho de uma tabela, mas poderá ser uma completa ou outra coisa que você deseje), que poderá ter vários conteúdos, ou seja, poderá ter um ou mais arquivos html como o que está abaixo:

TESTE.HTML

Formulario


Nome:


Login:


Senha:


Observe abaixo passo a passo a sua execução:

Agora passamos como parâmetro a página teste.html descrita anteriormente:

Clicamos no link Carregar Página:

Você observou como é simples carregar html na sua aplicação usando o DWR. Lembrando que aqui foi apenas um exemplo, imagine ter uma determinada funcionalidade que o usuário através de uma Combo seleciona um de vários formulários já prontos. Seria algo como um formulário “dinâmico”.

Fica a cargo da sua criatividade utilizar essa funcionalidade do DWR. No exemplo da Palestra do Sun Tech Days utilizo esse método para carregar alguns formulários na tela, mas não é obrigado serem somente formulários, podem ser tabelas, imagens etc.

Mas informações no link abaixo:

http://getahead.org/dwr/server/generic

Espero que este artigo tenha sido de utilidade.

Abraços

Joe Walker na InfoQ

Recentemente o site InfoQ entrevistou nada mais do que Joe Walker o criador do DWR. Na entrevista basicamente ele fala sobre as novas características, novas funcionalidades, o futuro do DWR, sobre Ajax Reverse, a integração com Spring, o DWR nas IDE´s e claro a parceria(patrocínio) com a TIBCO, uma multinacional que “adotou” o DWR na maioria de seus projetos dentre outras coisas.

A entrevista claro está em inglês, mas para a nossa sorte(minha principalmente) é um inglês bem técnico, com algumas gírias mas da para entender no geral o que ele fala.

Joe Walker é um desenvolvedor e consultor que trabalha em técnicas avançadas em desenvolvimento com Ajax. Ele é o criador do DWR, praticamente ele mantém sozinho o desenvolvimento do DWR(claro existem alguns gatos pingados que participam).

É mais uma prova da força do DWR e da sua capacidade e robustez, posso afirmar que HOJE ainda não inventaram um fremework Ajax para java melhor ou similar ao DWR.

Link da Entrevista: http://www.infoq.com/interviews/dwr-joe-walker

Até mais ;D