Singnature com DWR
Uma funcionalidade bem interessante do DWR é a Signature. Uma maneira simples de se trabalhar com Coleções. Signatures no DWR utiliza-se de reflexão para descobrir os tipos que ele deve processar na conversão.
É uma forma que o DWR encontrou para resolver alguns problemas de objetos armazenados em uma coleção. Imagine o método a seguir:
public void exampleSign(List attribute){ ...
...
}
Você não tem a mÃnima idéia do que pode vir no List, pode ser uma coleção de Beans, String, Integer etc. Com Singnatures você poderá garantir que seu método vai receber vários tipos já pré-definidos sem precisar alterar a assinatura do método e sem ter que ter um único tipo. Vejamos um exemplo:
public void exampleSign(List attribute){ ...
...
}
Esse é o seu método, e agora você quer que ele receba uma Lista de Beans de Usuários.
No seu dwr.xml fora da tag < allow >< / allow> você irá criar o trecho abaixo:
< signatures > < ! - - [ CDATA [ import java.util.List; import com.jm.dwr.FacadeAjaxSession; import com.jm.bean.BeanUsuario; FacadeAjaxSession.exampleSign(List < BeanUsuario >); ] ] - - > < / signatures >
Na primeira linha você define que o trecho a seguir é uma Signature, caso você vá utilizar algumas classes que não são “default” você deverá fazer o import da mesma. E claro o import da classe que você deseja alterar o método. Na linha 06 você “diz” como o método deverá se comportar.
Agora seu método está recebendo um List de Beans Usuários. Vamos ver outro exemplo:
Queremos agora que o método receba um List de Strings:
< signatures > < ! - - [ CDATA [ import java.util.List; import com.jm.dwr.FacadeAjaxSession; FacadeAjaxSession.exampleSign(List < String >); ] ] - - > < / signatures >
Que tal um List de Integer:
< signatures > < ! - - [ CDATA [ import java.util.List; import com.jm.dwr.FacadeAjaxSession; import com.jm.bean.BeanUsuario; FacadeAjaxSession.exampleSign(List < Integer >); ] ] - - > < / signatures >
É bem simples de fazer e configurar. É uma opção interessante para quem não quer ficar preso a assinatura do método e ter que fazer uma para cada tipo de collections.
Claro existem várias outras formas e maneiras de se utilizar a signatures do DWR, fica a seu cargo escolher onde ela melhor se aplica. Caso queria saber mais sobre signatures acesse o link abaixo:
http://getahead.org/dwr/server/dwrxml/signatures
Abraços.

Rafael Ponte said
am outubro 22 2007 @ 4:42 am
Ficou massa, parabéns
)
Que plugin é esse do código? Bacana isso!
handersonbf said
am outubro 22 2007 @ 10:45 am
Diz rafael blz.
Cara eu uso o Google SyntaxHighlighter: http://code.google.com/p/syntaxhighlighter/
Vou até fazer um post explicando como instalar, configurar e utilizar.
Rafael Carneiro said
am outubro 23 2007 @ 4:46 am
O Handerson está se tornando cada vez mais uma das principais referências de DWR na lÃngua portuguesa. Dica: comece a escrever seus artigos e posts em inglês que suas chances de crescimento profissional aumentarão.
handersonbf said
am outubro 23 2007 @ 5:03 am
opa vlw Carneiro. Cara até pensei mas meu inglês para a minha vergonha é péssimo na escrita rsrsrsr mas tenho que criar coragem e vergonha na cara e comecar com o curso de ingles intensivo rsrsrsrsr.
Quem sabe um dia eim ? One Day ;D
Vlw