Sunteți pe pagina 1din 21

 STRUTS

Paloma Costa
http://www.javawoman.cjb.net
paloma­costa@softwarelivre.org
Agenda
* Introdução
* O Design Pattern MVC
* Instalação 
* Componentes do Struts
* Custom tag’ s
* Detalhes do funcionamento
* Configuração
* Arquitetura
* FormBeans
* Tomcat
* Struts
* Considerações
* Commons
Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
Introdução
 * O Struts é um framework open­source do projeto Jakarta que 
auxilia a construção de aplicações para a Web.

* Construído em Java, baseada nas tecnologias Java Servlets,      
JavaBeans, ResourceBundles e XML. 

* Paradigma MVC (Model­View­Controller). 

* Fornece um componente Controller e se integra a outras 
tecnologias para oferecer suporte aos componentes Model (como 
JDBC, EJB’ s, etc.), e View (como JSP, XSLT, etc.).

Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
            O Design Pattern MVC 
* O fluxo da aplicação é mediado por um controlador central 
(Controller).

* Model representa a lógica de negócio e o estado da aplicação.

* A requisição respondida através do controlador é apresentada na 
visão (View), através de mapeamentos que são carregados através 
de um arquivo de configuração (struts­config.xml). 

* Isso faz com que não haja dependência entre a visão e o modelo, 
que auxilia na criação e na manutenção da aplicação.

Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
Padrão MVC
Instalação

* Versão 1.1, que ainda se encontra em versão beta.

* http://apache.megalink.com/jakarta/struts/binaries/

* O pacote vem com as bibliotecas necessárias para a utilização do         
   framework e alguns exemplos.

Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
      Componentes do Struts

*Componentes Model ­ deverá ser construída a lógica de 
negócio da aplicação.

* Componentes View ­ visão da aplicação, ou seja, a maneira 
como o sistema interage com o usuário.

*  Componentes  Controller  ­  principal  função  é  fazer  o 


mapeamento das requisições do servidor.

Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
                        Custom tag’s

As custom tag’ s do Struts são divididas em cinco bibliotecas:

html: permite a criação e manipulação integrada de formulários HTML com 
o Struts;
logic:  permite  a  criação  de  estruturas  de  condição  e  repetição,  além  da 
administração do fluxo da aplicação;
bean: permite a criação e manipulação de JavaBeans dentro da página;
nested: permite a definição de modelos de objetos aninhados e a capacidade 
de representá­los e administrá­los;
template:  permite  a  criação  de  modelos  dinâmicos  de  páginas  JSP  que 
compartilham de um formato comum.

Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
Configuração
*  ActionServlet  deverá  estar  no  arquivo  web.xml,  que  fica 
abaixo  do  diretório  WEB­INF  define  aonde  a  requisição  deve 
chegar. 

* struts­ config.xml  é onde os mapeamentos são definidos. Todo 
esse arquivo é lido na inicialização do servidor e armazenado na 
memória, por questões de performance.

* É necessário que se tenha todos os arquivos .jar necessários à 
aplicação  abaixo  do  diretório  WEB­INF/lib,  e  todos  os 
descritores de custom­tag’ s abaixo do diretório WEB­INF.

* Criação dos form­beans para as classes action.
Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
Arquitetura

O arquivo web.xml terá o seguinte conteúdo:

* No diretório WEB­INF, deverão ser colocados os descritores de 
custom tag’ s do Struts (arquivos .tld).

*  Criar  o  diretório  WEB­INF/classes,  onde  serão  colocados  os 


arquivos .class, dentro de seus determinados pacotes, e o diretório 
WEB­INF/lib, onde serão colocados os arquivos .jar do Struts.

* Próximo passo será criar o arquivo struts­config.xml, que ficará 
abaixo do diretório WEB­INF. 

Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
Form­beans
* Utilizados para fazer correspondência com os campos de entrada de dados nas telas da 
aplicação, podendo também ser utilizados para fazer a validação desses campos. 

* Métodos getter e sesetters,  utilizados pelas classes Action no futuro. 

* Precisaremos de dois form­beans  para páginas com formulários, um para a atualização 
dos dados do catálogo, e outro para efetuar a consulta. 

*Criação  de  duas  classes  Action  :  a  primeira  atenderá  às  requisições  referentes  ao 
catálogo, a segunda, às requisições referentes à consulta. 

Alguns  exemplos  utilizam  uma  classe  Action  para  cada  mapeamento,  mas  numa 
aplicação  de  grande  porte,  opta­se  por  agrupar  os  mapeamentos do mesmo assunto em 
uma mesma classe Action, para melhorar a clareza e manutenibilidade da aplicação. 

Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
Form­beans

* Criar as páginas JSP, que serão responsáveis pela interação do usuário 
com a aplicação. As páginas deverão ficar no mesmo nível do diretório 
WEB­INF.

* Toda a lógica da aplicação está no Model e no Controller da aplicação, 
sendo  utilizadas  apenas  custom  tag’ s  para  interação  do  View  com  o 
Controller.

Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
TOMCAT
*Gerar arquivo .war, e instalar no contêiner WEB para Java.
*Basta copiar o arquivo .war gerado para o diretório webapps. 
*Para a geração do arquivo .war, utilizaremos o Jakarta Ant. 
*É necessário criar uma estrutura de diretórios, contendo três pastas: 
*build, onde ficarão armazenadas as páginas JSP e o diretório 
WEB­INF na raiz do diretório da aplicação; 
*dist, onde será criado o arquivo .war, 
*src, onde serão armazendos os arquivos .java. 
Obs: caso o arquivo servlet.jar não esteja no seu classpath, é    
      necessário incluí­lo na pasta WEB­INF/lib, para compilar o código 
       fonte.

Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
build.xml

Abaixo, está a configuração do arquivo build.xml, que ficará na raiz 
do diretório da aplicação:

Obs:  caso  o  arquivo  servlet.jar  não  esteja  no  seu  classpath,  é 


necessário incluí­lo na pasta WEB­INF/lib, para compilar o código 
fonte.

Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
 Jakarta Struts
* É um framework utilizado por desenvolvedores de aplicações 
Java para Web no mundo inteiro. 

*Os desenvolvedores preocupam­se apenas em criar serviços, e 
não em layouts HTML;

*Mudanças no layout não requerem necessariamente, mudanças 
no código;

*O código fica mais limpo, pois não se mistura código Java com 
código HTML;

*Há uma divisão lógica entre as partes do sistema, auxiliando na 
clareza do código e no desenvolvimento em equipe.
Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
Considerações

O  exemplo  utilizado  é  simples,  sendo  que,  é  possível  integrar 


tecnologias  mais  robustas  no  desenvolvimento  de  aplicações 
corporativas, como por exemplo, Enterprise JavaBeans. 

No desenvolvimento de aplicações simples e de pequeno porte, talvez 
não seja tão vantajosa a utilização de uma arquitetura tão complexa e 
modular  como  o  MVC,  sendo  que  os  maiores  benefícios  são 
alcançados,  são  sem  dúvida,  em  aplicações  corporativas  de  grande 
porte.

Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
Commons
* Outro importante projeto da Jakarta, é o Commons.
*Tem  como  principal  objetivo  criar  e  manter  componentes  Java 
reutilizáveis. 
* Dois componentes  que utilizam o padrão JavaBeans para integração entre 
as camadas MVC:
*  BeanUtils permitem a criação de JavaBeans dinâmicos, sem que se precise 
criar uma classe no padrão JavaBeans para que efetuar essa integração.  
* Logging fornecem um mecanismo simples e amigável para criação de logs 
na aplicação. 
*  Extensibilidade  de  seu  framework,  através  da  utilização  dos  chamados 
plug­ins. 
*O Tiles é um plug­in que auxilia o desenvolvimento de componentes View 
do  MVC,  utilizando  templates  para  auxiliar  na  criação  e  manutenção  de 
páginas. 
Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
Referências
Referências na Web:

Struts: http://jakarta.apache.org/struts/

Apache:  http://struts.apache.org/

Project Refinery: http://www.projectrefinery.com/struts.html

Livros:

Struts in Action. Ted Husted, Cedric Dumoulin, George Franciscus, e David 
Winterfeldt

Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
Perguntas

 Desenvolver aplicações utilizando o paradigma MVC requer uma 
considerável curva de aprendizado. Mas os benefícios alcançados, sem 
dúvida, compensarão o esforço investido.

Paloma Costa Desenvolvedora de Software Livre ­ STRUTS
Agora na prática!

Baixar os fontes! E mãos a obra!

Paloma Costa Desenvolvedora de Software Livre ­ STRUTS

S-ar putea să vă placă și