Struts é uma
framework para aplicações Web que faz uso de Java Servlets, JavaBeans,
ResourceBundles, XML, e alguns componentes Apache Commons.
O Apache Struts web framework é uma solução open-source para criar aplicações web em Java, usando uma arquitetura Model-View-Controller (MVC), oferecendo um ambiente extensível para desenvolvermos as nossas aplicações.
O Model representa as entidades do domínio (ou da base de dados), a View representa o código de apresentação das páginas Web, e o Controller representa o código navegacional.
O Struts fornece o
seu próprio componente de controlo (Controller) e pode ser integrado com
diversas tecnologias para fornecer o Model e a View.
Para o Model, o Struts pode
ser integrado com JDBC e EJB, ou com packages externos como o Hibernate, iBATIS, ou Object Relational Bridge.
Para a View, a framework
funciona com JSPs, mas podem ser usados outros sistemas de apresentação.
O Controlador atua como uma ponte entre o
Modelo da aplicação e a View (camada de apresentação Web).
Quando é recebido um pedido (request), o
Controlador invoca uma classe de Ação (Action class), a qual
consulta o Modelo para examinar ou atualizar o estado da aplicação.
A framework Struts fornece uma classe ActionForm para
apoiar na transferência de dados entre o Modelo e a View.
Geralmente, o Modelo é representado como um conjunto de JavaBeans. Tipicamente,
o programador usa o componente BeanUtils (Apache Commons) para
transferir dados entre ActionForms e os objetos do Modelo. Para desenvolver o nosso exemplo vamos usar o NetBeans IDE 7.2.1.
Começamos, então, por criar um novo projeto Java Web/Web Application, atribuir-lhe o nome,
selecionar o servidor aplicacional a usar (vamos usar o GlassFish Server 3.1.2),
e selecionar as frameworks que pretendemos usar.
Para este exemplo selecionamos, para além da framework Struts 1.3.10, o Hibernate 3.2.5, o qual iremos usar para a camada de acesso a dados.
O NetBeans cria a seguinte estrutura de projeto:
Uma aplicação Web usa um deployment descriptor para inicializar recursos tais como servlets e taglibs. Esse descritor é formatado como um document XML e tem o nome web.xml. De igual modo, o Struts usa um ficheiro de configuração (struts-config.xml) para inicializar os seus próprios recursos, entre os quais temos ActionForms para recolher inputs dos utilizadores, ActionMappings para redirecionar o input para Actions no lado do servidor e ActionForwards para selecionar páginas de output.
web.xml e struts-config.xml podem encontrar-se na pasta WEB-INF do projeto criado pelo NetBeans.
No ficheiro struts-config.xml podemos encontrar o excerto:
<global-forwards>
<forward name="welcome" path="/Welcome.do"/>
</global-forwards>
<action-mappings>
<action path="/Welcome" forward="/welcomeStruts.jsp"/>
</action-mappings>
No código criado pelo NetBeans podemos ainda encontrar os ficheiros JSP, index.jsp:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<jsp:forward page="Welcome.do"/>
e welcomeStruts.jsp:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<html:html lang="true">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><bean:message key="welcome.title"/></title>
<html:base/>
</head>
<body style="background-color: white">
<logic:notPresent name="org.apache.struts.action.MESSAGE" scope="application">
<div style="color: red">
ERROR: Application resources not loaded -- check servlet container
logs for error messages.
</div>
</logic:notPresent>
<h3><bean:message key="welcome.heading"/></h3>
<p><bean:message key="welcome.message"/></p>
</body>
</html:html>
O que este código exemplo criado pelo NetBeans faz é:
- O index.jsp encaminha, através dos mapeamentos definidos em struts-config.xml, o output para o ficheiro WelcomeStruts.jsp.
- O ficheiro WelcomeStruts.jsp apresenta os valores de recursos definidos em ApplicationResource.properties, nomeadamente os valores das propriedades, welcome.heading, welcome.message e welcome.title.
No próximo artigo iremos alterar este projeto para fazer o nosso exemplo.
Referências:
- Welcome to Struts 1, http://struts.apache.org/1.3.10/index.html
- Introdução ao Struts Web Framework, http://netbeans.org/kb/docs/web/quickstart-webapps-struts_pt_BR.html
Sem comentários:
Enviar um comentário