sábado, 22 de setembro de 2007

MVC : Struts 1 vs. Struts 2

ainda vejo muita empresa utilizando o Struts 1 e muitas dessas desconhecem o Struts 2...

bom vejamos algums motivos para utilizar o Struts 2:

- POJO Actions
não precisa mais herdar nada, nem ter os métodos da classe action atrelados ao HttpServletRequest, HttpServletResponse ou outro parametro, simplesmente nada, basta ter um retorno String para orientar o mapeamento a action...

- Esqueça os FormBeans e DynaFormBeans
isso era e é algo que julgo muito chato quando estou trabalhando com um projeto em Struts 1, no Struts 2 esqueça disso, para que sofrer, ou seja use outras classes no formato POJO e defina essas como atributos da classe action, com respectivos métodos set e get para este e pronto, eis a tua classe Formulário, simples, rápido, menos traumatico, mais flexível, pois você pode utilizar quantas classes quizer =]

- Mapeamento com parametros alteráveis
é isso mesmo que você leu, digamos que você mapeou lá a tua action, mas precissa que esta saída da action seja flexível e possa ser alterada passando parametros para flexibilizar a saída, isso tem como fazer brincando no Struts 2, sabia?

- Configuração mínima
não quer utilizar XML para mapear a action ou a saída, então não use, você pode utilizar Annotations para configurar suas actions

- Mapeamento Reutilizáveis
isso mesmo que você leu, com um único mapeamento você pode utiliza-lo para inumeras actions, pois tem como você montar o mapeamento definindo parametros, onde esses parametros são partes enviadas na URL da request... por exemplo: /suaApp/casoDeUso/operacao/, esse formado de URL tem como ser mapeado onde você faz com que o caso de uso, seja o nome do pacote, ou mesmo nome da classe action a ser chamada e a operação o método interno da classe ( isto que citei é apenas um exemplo muito basico, da possibilidade oferecida por esta funcionalidade )

- Tiles 2 ou Sitemesh
facilmente integravel com o Tiles 2 ou com o SiteMesh, que são gerenciadores de layout para facilitar o desenvolvimento da interface da tua aplicação

- Templates costumizáveis de componentes
sim, o Struts 2 possui componentes prontos, de suas taglib que podem ser configurados de acordo com tua necessidade...

- Plugins e mais plugins
diversidade de plugins para o Struts 2, quer integrar com o Spring? sem problemas =]

----

e você ainda vai continuar usando o Struts 1? a vai, bom se está sendo obrigado, devido a definição de algum projeto paciência ( as vezes isso também me acontece ), mas se puder escolher use o Struts 2, te garanto que será outro nível e outra experiência, irá notar que é realmente produtivo ( muito mais que o JSF, se bem que tem gente que integra os 2, mas tem louco para tudo nessa vida )

----

Outros posts sobre o Struts 2, em alguns tem exemplos de projeto ;)
Um post de resposta sobre o Struts 2 no Portal Java : [link]