Documente Academic
Documente Profesional
Documente Cultură
Paloma Costa
http://www.javawoman.cjb.net
palomacosta@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 opensource 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 (ModelViewController).
* 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 (strutsconfig.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.
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 WEBINF 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 WEBINF/lib, e todos os
descritores de customtag’ s abaixo do diretório WEBINF.
* Criação dos formbeans para as classes action.
Paloma Costa Desenvolvedora de Software Livre STRUTS
Arquitetura
O arquivo web.xml terá o seguinte conteúdo:
* No diretório WEBINF, deverão ser colocados os descritores de
custom tag’ s do Struts (arquivos .tld).
* Próximo passo será criar o arquivo strutsconfig.xml, que ficará
abaixo do diretório WEBINF.
Paloma Costa Desenvolvedora de Software Livre STRUTS
Formbeans
* 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 formbeans 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, optase 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
Formbeans
* 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
WEBINF.
* 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
WEBINF 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 WEBINF/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:
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 preocupamse 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
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
plugins.
*O Tiles é um plugin 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