segunda-feira, 28 de janeiro de 2013

Exemplo de aplicação Web Java usando Struts 1 - 1

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.

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.xmlstruts-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 é:

  1. O index.jsp encaminha, através dos mapeamentos definidos em struts-config.xml, o output para o ficheiro WelcomeStruts.jsp.
  2. 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:

Sem comentários:

Enviar um comentário