Apache Struts
Struts é um framework de desenvolvimento da camada controladora, numa estrutura seguindo o padrão Model 2 (uma variante do MVC oficializada pela Sun), de aplicações web (principalmente) construído em Java para ser utilizado em um container web em um servidor J2EE[1].
Este framework foi originalmente desenvolvido por Craig McClanahan e doado para a Apache Software Foundation em 2002, onde continua sendo desenvolvido segundo o padrão desta fundação.
Índice |
[editar] Objetivos e visão geral
Em um aplicativo de web padrão Java EE, o cliente normalmente envia informações ao servidor através de um formulário da web. Em seguida, a informação ou é entregue a um Java Servlet que a processa, interage com um banco de dados e produz uma resposta formatada em HTML, ou é entregue a um JavaServer Page (JSP) que mixa código HTML e Java para obter o mesmo resultado. Ambas as abordagens são consideradas inadequadas para grandes projetos porque eles misturam a lógica do aplicativo com apresentação e dificultam a manutenção.
O objetivo do Struts é separar o model (modelo - lógica de aplicativo que interage com um banco de dados) do view (visualização - páginas HTML apresentadas para o cliente) e do controller (controlador - instância que transmite informações entre a exibição e o modelo). Struts fornece o controlador/controller (um servlet conhecido como ActionServlet) e facilita a escrita de moldes padronizados para a camada de visualização/view (normalmente em JSP, mas XML/XSLT e Velocity também são suportados). O programador de aplicativo da web é responsável por escrever o código do modelo/model, e por criar um arquivo de configuração centralizador (struts-config.XML) que une modelo, visualização e controlador.
Solicitações do cliente são enviadas para o controller em forma de Actions (ações) definidas no arquivo de configuração. O controller, ao receber uma solicitação, chama a classe Action correspondente e esta interage com o código do model específico. O código do model retorna um "ActionForward", uma cadeia de caracteres que informa ao controller qual página de resultado deve ser enviada para o cliente. As informações são passadas entre model e view em forma de JavaBeans especial. Uma poderosa biblioteca personalizada de palavras-chave (tags - medatada) permite ler e gravar o conteúdo (beans) da camada de apresentação sem a necessidade de qualquer código Java embutido.
Struts é categorizado como uma estrutura de aplicativo web baseada em solicitação.
Struts também oferece suporte a internacionalização e inclui um mecanismo de moldes chamado "Tiles", que permite que a camada de apresentação seja composta de cabeçalho, rodapé e componentes de conteúdo independentes .
[editar] Principais problemas e soluções
- Facilita a população de beans (Action Forms)
- Simplifica o uso de servlets, necessitando apenas a criação de classes Action
- Com suas tags dispensa o uso de scriptlets em 98% dos casos.
[editar] Componentes
- ActionForm
- ActionForward
- ActionMapping
- ActionServlet
- DynaActionForm
Referências
- ↑ * (em inglês) Apache Software Foundation