Antes de começar a trabalhar com o Struts2, é fundamental compreender os objetivos e benefícios que este framework oferece aos desenvolvedores.
Objetivos de Design
O principal objetivo do Struts2 é aplicar o padrão MVC (Model-View-Controller) no desenvolvimento de aplicações web. A implementação do padrão MVC traz vantagens significativas na organização e manutenção do código.
Vantagens Técnicas
O Struts2 apresenta duas principais vantagens técnicas:
Primeiramente, todas as aplicações baseadas em Struts2 operam através do protocolo HTTP client/server. A API Java Servlet, embora restrita, permite utilizar a poderosa linguagem Java na implementação da lógica de negócio.
Segundo, oferece uma implementação clara do padrão MVC, que inclui componentes essenciais para o processamento de requisições, como interceptors, a linguagem de expressão OGNL e a pilha de contexto.
Esses objetivos e vantagens justificam o estudo e utilização do Struts2. Vamos analisar detalhadamente seu funcionamento.
Princípio de Funcionamento
O funcionamento do Struts2 pode ser comprenedido através de um fluxo bem definido de processamento de requisições. A seguir, detalharemos cada etapa deste processo.
Para iniicantes, a melhor abordagem é compreender esses conceitos através da prática. Vamos criar um projeto prático para ilustrar os fundamentos do Struts2.
Preparação do Ambiente
Para começar, é necessário baixar os arquivos JAR do Struts2. Acesse o site oficial do projeto e selecione a versão desejada. Neste exemplo, utilizaremos a versão struts-2.3.16.1. Após o download, descompacte o arquivo. É recomendável organizar os JARs em um local centralizado para facilitar sua referência em projetos futuros. Ambientes como o Eclipse permitem a criação de "User libraries" para gerenciar conjuntos de bibliotecas.
Além do Struts2, precisamos de um servidor Tomcat para hospedar nossa aplicação. É importante instalar o JDK Java antes do Tomcat, pois este depende do Java para funcionar. Recomenda-se a versão descompactada do Tomcat para facilitar a integração com ambientes como o MyEclipse.
Com os pré-requisitos instalados, podemos iniciar o desenvolvimento de nosso primeiro projeto Struts2.
Configuração do Ambiente no MyEclipse
Abra o MyEclipse e integre o servidor Tomcat recém-instalado. Acesse o menu Window > Preferences para realizar essa configuração.
Após configurar o Tomcat, crie um projeto "HelloWorld" e adicione os JARs do Struts2. Uma prática recomendada é criar uma biblioteca personalizada no MyEclipse para facilitar o gerenciamento dos JARs em projetos futuros.
Configuração do Web.xml
Com os JARs importados, precisamos configurar o ambiente Struts2. Abra o arquivo web.xml na pasta WEB-INF do seu projeto e adicione a configuração básica do Struts2:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Configuração do Arquivo Struts.xml
A seguir, precisamos criar o arquivo struts.xml. Uma forma prática é copiar um exemplo existente. No pacote descompactado do Struts2, na pasta apps > struts2-blank > WEB-INF > classes, você encontrará um arquivo struts.xml que pode ser copiado para o diretório src do seu projeto.
<?xml version="1.0" encoding="UTF-8" ?>
<struts>
<package name="principal" namespace="/" extends="struts-default">
<action name="saudacao" class="br.exemplo.action.Saudacao" method="executarSaudacao">
<result name="sucesso">/index.jsp</result>
</action>
</package>
</struts>
Classe de Ação (Action)
A classe de ação é responsável por processar a requisição e determinar o resultado. Segue um exemplo básico:
package br.exemplo.action;
public class Saudacao {
public String executarSaudacao(){
return "sucesso";
}
}
Estrutura do Projeto
Com todas as configurações realizadas, a estrutura do seu projeto deve incluir os arquivos e pastas essenciais para o funcionamento do Struts2.
Com isso, a configuração básica do ambiente Struts2 está concluída. Você pode agora desenvolver aplicações web utilizando este poderoso framework.