wpjr2’s Weblog

Artigos e tutoriais úteis

Apache Struts – Introdução

Posted by wpjr2 em maio 26, 2008

por Marcelo Ribeiro Costa
extraído do site: http://www.portaljava.com.brIntrodução

Introdução

O Struts é um framework open-source do projeto Jakarta que auxilia a construção de aplicações para a Web. Ele é construído em Java, e seu coração consiste numa camada de controle flexível baseada nas tecnologias Java Servlets, JavaBeans, ResourceBundles e XML.

O Struts favorece o desenvolvimento de aplicações seguindo o paradigma MVC (Model-View-Controller). O Struts 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.).

2. O Design Pattern MVC

No design pattern MVC, o fluxo da aplicação é mediado por um controlador central (Controller). O controlador delega requisições para um tratadores apropriados, que estão localizados no modelo (Model), que representa a lógica de negócio e o estado da aplicação. A requisição então é respondida, através do controlador, e apresentada na visão (View), da maneira adequada. No Struts, essas respostas são orientadas 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.

3. Instalação

A versão do Struts mais utilizada é a versão 1.1, que ainda se encontra em versão beta. Apesar de ainda não estar completamente finalizada, é uma versão estável e que deve sofrer poucas alterações. Para que nossos exemplos funcionem adequadamente, utilizaremos essa versão. Será então necessário fazer o download do arquivo jakarta-struts-1.1-b3.zip no site do Jakarta Struts (http://jakarta.apache.org/struts), e descompactá-lo no computador. O pacote vem com as bibliotecas necessárias para a utilização do framework e alguns exemplos.

4. Componentes do Struts

1. Componentes Model

Os componentes Model englobam dois conceitos: a lógica de negócio da aplicação e seu estado. As tecnologias utilizadas nessa camada, são JavaBeans, e freqüentemente, Enterprise JavaBeans e JDBC.

Através destas tecnologias, deverá ser construída a lógica de negócio da aplicação.

2. Componentes View

Os componentes View representam a visão da aplicação, ou seja, a maneira como o sistema interage com o usuário. A tecnologia mais comumente utilizada nessa camada é Java Server Pages.

Nessa camada, o Struts oferece suporte a dois importantes aspectos: internacionalização e construção de interfaces JSP através de custom tag’s.

Para permitir a internacionalização, é necessário que se crie, sob o diretório WEB-INF/resources da aplicação, um arquivo chamado ApplicationResources.properties, que conterá mensagens para a linguagem padrão do seu servidor. As mensagens são colocadas nos arquivos através de strings simples, como:

app.cliente.nome=Nome do cliente

Para possibilitar que se crie mensagens em outras linguagens, é necessário criar o arquivo ApplicationResources_xxx.properties, onde xxx será o nome ISO da linguagem a ser utilizada.

Outro importante recurso é a disponibilidade de custom tag’s do Struts, que permitirá, além da utilização dos arquivos de internacionalização, uma série de funcionalidades, que, na grande maioria dos casos, dispensará a utilização de código Java dentro da página (aliás, esse é um dos objetivos da arquitetura MVC, pois o fluxo de controle e lógica de negócio da aplicação não devem estar na camada de visão). Além disso, a extensibilidade de Java permite que o próprio desenvolvedor crie suas próprias custom tag’s, que, aliás, é uma tarefa bastante simples.

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.

3. Componentes Controller

Os componentes Controller são responsáveis pelo fluxo da aplicação. O principal componente Controller do Struts é a ActionServet, que é uma extensão de Servlet, exercendo o papel de controlador principal da aplicação. Sua principal função é fazer o mapeamento das requisições do servidor.

Para isso, é necessário criar um arquivo de configuração, denominado struts-config.xml, que é usado para mapear a navegação da aplicação. Depois disso, deverão ser criadas as classes Action (que são extensões da classe Action do Struts), que conterão as ações a serem executadas a cada requisição. O objetivo da classe Action é processar a requisição e retornar um objeto da classe ActionForward que identifica para qual componente de visão (normalmente uma página JSP) será gerada a resposta. As classes Action são compostas de um único método, com a assinatura public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException, que será invocado quando a ActionServlet receber a requisição e processá-la.

O Ainda na camada controller, Struts oferece para os chamados ActionForm beans, ou, mais comumente chamados, form-beans. Form-beans são classes Java que estendem ActionForm e se integram a um formulário de entrada de dados em sua aplicação. O conceito dos form-beans é simples: são JavaBeans que contém uma propriedade para cada campo de seus formulários HTML, com seus respectivos métodos getters e setters. Os form-beans não implementam qualquer método, exceto reset e validate, servindo para limpar o conteúdo do formulário e validar seus dados, respectivamente.

5. Configuração

Antes de utilizar o Struts, é necessário configurar seu ambiente para que ele saiba como mapear todas as requisições através de uma determinada extensão de arquivo para a ActionServet do Struts. Isso deverá estar no arquivo web.xml, que fica abaixo do diretório WEB-INF de sua aplicação.

O próximo passo é configurar o arquivo fundamental do Struts, o struts-config.xml. Enquanto o arquivo web.xml define aonde a requisição deve chegar, o struts- config.xml determina exatamente o que vai acontecer com ela. Nada acontece sem sua permissão ou seu conhecimento: é onde os mapeamentos são definidos. Toda a navegação da aplicação está definida nesse arquivo, o que é uma grande vantagem, pois a mantém modularizada e de fácil manutenção. Todo esse arquivo é lido na inicialização do servidor e armazenado na memória, por questões de performance.

Além disso, é 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.

6. Criando uma aplicação exemplo com o Struts

O primeiro passo será criar a estrutura padrão para aplicativos WEB utilizando Servlets, contendo uma pasta WEB-INF, onde será colocado o arquivo web.xml.

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

Depois disso, devemos 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.

Após as configurações acima, pode-se criar as ações, os forms e os documentos JSPs da aplicação que se deseja desenvolver, configurando-os no arquivo struts-config.xml.

Uma resposta to “Apache Struts – Introdução”

  1. ori struts said

    buen post!

    gracias!

    -Ori

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: