Artigo da WebMobile 11 - O Framework WebWork
Artigo Originalmente publicado na WebMobile 11.
Clique aqui para ler este artigo em pdf
Clique aqui para ler todos os artigos desta edição
O framework WebWork
Desenvolvimento Web com flexibilidade
Desde os primórdios do desenvolvimento web, desenvolvedores procuram ferramentas que possam lhe ajudar a desenvolver aplicações com mais eficiência e flexibilidade. Por causa dessa necessidade, acabaram surgindo tecnologias como CGI, PHP, ASP. Após algum tempo, surgiram novas tecnologias como o Java Servlet e o Java Server Pages (JSP) que utilizam conceitos importantes, como a separação de “interesses”.
A separação de interesses consiste em separar a aplicação em camadas, criando uma camada contendo os objetos de negócio, uma camada responsável pela interface com o usuário e uma camada que controla o fluxo da aplicação. O MVC é uma estratégia de separação de interesses.
A partir desse conceito nascem diversos frameworks. Alguns ficaram muito famosos como é o caso do Tapestry, Spring MVC e WebWork. Esse artigo fornece um guia detalhado sobre como construir aplicações web em Java utilizando o framework WebWork.
O Framework WebWork
O WebWork é um poderoso framework MVC para desenvolvimento de aplicações web em Java. O WebWork é baseado em outro framework chamado XWork. A Nota 1 fornece maiores informações sobre o XWork.
Nota 1. Conhecendo o XWork
O XWork é um framework open source que implementa o padrão de projeto Command (veja a Nota 2) e forma o núcleo do WebWork. O XWork pode ser utilizado tanto por aplicações web quanto por aplicações desktop.
A grande vantagem do WebWork ser derivado do XWork é poder ter o melhor dos dois frameworks, como o suporte a validação, conversão de tipos e outras funcionalidades do XWork; e o suporte a internacionalização, taglibs, temas, templates e muitas outras funcionalidades do WebWork.
Nota 2. Padrão de Projeto Command
O propósito do padrão de projeto Command é encapsular uma requisição como um objeto, permitindo que os clientes parametrizem diferentes requisições, filas ou fazer o registro de log de requisições e dar suporte a operações que podem ser desfeitas.
O WebWork foca na simplicidade e produtividade, oferecendo aos desenvolvedores as seguintes opções:
·Um flexível framework de validação que permite desacoplar regras de validação das ações;
·Conversão de tipos que lhe permite converter facilmente objetos de uma classe para outra;
·Uma poderosa linguagem de expressão baseada em OGNL (Object-Graph Navigation Language);
·Inversão de controle utilizando a integração com o framework Spring. A inversão de controle é uma estratégia onde as dependências são retiradas da classe que as contém. Ao invés da classe instanciar internamente cada objeto que necessita, ela recebe simplesmente as referências;
·Tags reutilizáveis que permitem o desenvolvimento usando Temas e Templates;
·Interceptors que fornecem várias funcionalidades, incluindo a prevenção de submissão múltipla de formulários;
·Internacionalização (i18n);
·Fácil integração com Hibernate (framework de mapeamento objeto-relacional), Spring (framework JEE ligthweight), SiteMesh (mecanismo de templates) e JSTL (biblioteca padrão de tags);
·Suporte a vários tipos de camada de apresentação, como JSP, e os mecanismos de templates Java: FreeMarker e Velocity;
·Suporte avançado a Ajax através de temas.
O WebWork é bastante comparado com outros frameworks famosos, como o Struts, JSF, Spring MVC e até frameworks não Java, como é o caso do Ruby on Rails. O concorrente direto do WebWork ainda é o Struts que é bastante utilizado, mas o Struts possui alguns sérios problemas que serão comparados com o WebWork a seguir.
Struts
?Prós
Há muito mercado para desenvolvedores Struts;
Enorme quantidade de informação e exemplos;
TagLib HTML com amplo suporte a renderização de componentes HTML;
?Contras
Struts força a programação para classes abstratas ao invés de interfaces;
Uma ação é difícil de ser testada e requer uma extensão do Junit, o StrutsTestCase;
O Struts utiliza a JSTL EL como linguagem de expressão enquanto o WebWork possui sua própria linguagem de expressão.
WebWork
?Prós
Arquitetura simples de entender e customizar;
TagLib fácil de customizar utilizando FreeMarker e Velocity;" [...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo