Joe Walker anunciou que saiu a RC1 do DWR3 com pequeno atraso com novidades interessantes como suporte a Varargs, Method Overloading, entre outras coisas. Mas destaco algo que deveria ter há tempos e sentíamos falta para construções repetitivas como CRUD (principalmente) que é o que chamou de “Lightweight typed parameters“.
Até a versão 2 temos que construir métodos no Creator com implementação nos argumentos devido ao DWR não ter como fazer o binding entre o Javascript e o Java sem saber quem é o objeto. Algo assim:
public class AjaxFacade { public User teste(User param) { param.setDescription("Teste funcionou"); return param; } }
No javascript:
AjaxFacade.teste( { id:42 //JSON que representa o objeto User }, { callback:function(retorno) { alert(retorno.toSource()); }, errorHandler:function(error, message) { alert(message); }, timeout:5000 });
Agora foi adicionado a propriedade $dwrClassName no Converter onde você pode trabalhar com a interface ao invés da implementação. Vejamos com o Object como argumento no mesmo método:
public class AjaxFacade { public Object teste(Object param) { //puramente ilustrativo não peça fundamentação lógica :) if(param instanceof User) { ((User) param).setDescription("Teste funcionou"); } return param; } }
No javascript:
AjaxFacade.teste( { id:42 //JSON que representa o objeto User, $dwrClassName:"User" }, { callback:function(retorno) { alert(retorno.toSource()); }, errorHandler:function(error, message) { alert(message); }, timeout:5000 });
Agora aquelas centenas de classes que fazem a mesma coisa [CRUDzão velho de guerra] podem ser resumidas em uma única Facade que faz suas validações e aciona um Repository ou sua estrutura de persistência.
public class AjaxFacade { @Autowired Repository repository; public Object persistir(Object param) { if(param == null) ... repository.persist(param); return param; } }
Agora não tem como não termos um Feliz Natal!
Categories: Ajax, DWR, Frameworks, JSON, Java, JavaScript, Web Development ~ ~ Trackback


December 24th, 2008 at 3:41 pm
Muito bom Milfont!
DWR é sem dúvida o melhor framework AJAX para Java hoje em dia. E eu realmente achei muito interessante essa feature, pois me desculpe, fazer cruds ninguém merece!
Feliz Natal e que venha DWR3 com força total!
December 24th, 2008 at 9:55 pm
Não entendi nada…
Feliz natal!
December 25th, 2008 at 1:03 am
Gostei, me pareceu ser bem fácil de usar.
Feliz natal cara!
March 10th, 2009 at 1:46 pm
Concordo com o comment acima que fala que DWR é o melhor framework para requisições assíncronas em aplicações Java. Certamente ele é o que melhor abstraí o modelo de entidades da camada de negócios na apresentação!
Trabalho diariamente com ele no meu job full-time, e escrevi uma biblioteca em PHP baseada no conceito do DWR! Se quiser conhecer…
http://www.chrisb.com.br/blog/js-calls-php-biblioteca-que-possibilita-interacao-entre-javascript-e-php/
Abraços!
July 2nd, 2009 at 2:40 pm
[...] Para entender o {$dwrClassName:”Project”} visite esse post. [...]