Sie sind auf Seite 1von 17

15/10/2003

Struts, uma introdução prática

Petrópolis, 11th Outubro 2003

© Néki Technologies 2003

Struts, uma visão prática

Carlos Magno Silva dos Santos


Desenvolvedor
Néki Technologies
www.neki-technologies.com.br
carlos.magno@neki-technologies.com.br

11/10/03 © Néki Technologies 2003

1
15/10/2003

Struts, uma visão prática

Speaker´s Qualifications:

• Especialista em desenvolvimento de aplicações web


• Bacharel em informática pela Universidade Federal de Juiz de Fora
• Trabalha com Java desde 2001
• Desenvolvedor Java pela Néki Technologies

11/10/03 © Néki Technologies 2003

Struts, uma visão prática

O Struts
• É um framework para desenvolvimento de aplicações web em
Java.

• Um framework é uma aplicação “semi-completa” e reutilizável que pode


ser especializada para produzir aplicações customizadas

• É suportado por qualquer ferramenta de desenvolvimento que


suporte Java como JBuilder, Eclipse, NetBeans, JDeveloper,
etc.

11/10/03 © Néki Technologies 2003

2
15/10/2003

Struts, uma visão prática

O Struts
• Com o Struts podemos

1. Redirecionar todas as requisições para um único ponto.


2. Extrair e validar informações contidas nas requisições.
3. Mapear as requisições para as suas respectivas atividades.
4. Redirecionar dados e conteúdo para suas respectivas páginas.
5. Tratar eventuais erros de entrada de dados do usuário
6. Internacionalizar facilmente as aplicações

11/10/03 © Néki Technologies 2003

Struts, uma visão prática

Arquitetura
• Ele é uma implementação do MVC2 que é uma variação do
design pattern MVC (Model-View-Controller)
- Model
O modelo contém as funcionalidades da aplicação, isto é, nele
estão definidas as regras de negócio
- View
É onde está a apresentação do modelo, em uma aplicação web,
são as páginas mostradas ao usuário
- Controller
Reage às ações do usuário sendo responsável por modificar os
valores presentes no modelo

11/10/03 © Néki Technologies 2003

3
15/10/2003

Struts, uma visão prática

Arquitetura
• No MVC 1, o JSP é responsável por processar a requisição e
devolver a resposta para o cliente.

11/10/03 © Néki Technologies 2003

Struts, uma visão prática

Arquitetura
O MVC 1 torna-se indesejável para aplicações complexas pois:

• Dificulta a validação de dados inseridos pelo usuário


• Apresenta uma navegação complexa
• Dificulta a manutenção da aplicação
• Mistura lógica de negócio com apresentação de dados

11/10/03 © Néki Technologies 2003

4
15/10/2003

Struts, uma visão prática

Arquitetura
No MVC 2 tem-se a combinação de Servlets/JSP

11/10/03 © Néki Technologies 2003

Struts, uma visão prática

Arquitetura
O MVC 2 melhora a arquitetura da aplicação porque:

• Separa claramente a lógica de negócios da apresentação


através dos servlets e das páginas JSP
• Deixa para os servlets as tarefas de controlar o fluxo da
aplicação, manipular os objetos mostrados nas páginas e decidir
qual página deve ser mostrada dependendo das ações do
usuário
• Deixa para o JSP apenas as tarefas de reter os dados inseridos
pelo usuário e apresentar o conteúdo dinâmico gerado pela
manipulação dos dados pelos servlets

11/10/03 © Néki Technologies 2003

5
15/10/2003

Struts, uma visão prática

Arquitetura

11/10/03 © Néki Technologies 2003

Struts, uma visão prática

Arquitetura
O MVC 2 no Struts:

• Model – Todas as classes que tenham o objetivo de implementar as


regras de negócio, os JavaBeans e as classes de acesso a banco
de dados por exemplo estão incluídas nesta categoria claramente a
lógica de negócios da apresentação através dos servlets e das
páginas JSP

11/10/03 © Néki Technologies 2003

6
15/10/2003

Struts, uma visão prática

Arquitetura
O MVC 2 no Struts:

• View – As páginas JSP

11/10/03 © Néki Technologies 2003

Struts, uma visão prática

Arquitetura
O MVC 2 no Struts:

• Controller – Um servlet controlador (o ActionServlet) usado para


manipular as requisições dos clientes e determinar qual Action irá
processar cada requisição recebida. Cada Action tem a função de
acessar o modelo fazendo a ligação entre a lógica de negócio e o
servlet. O RequestProcessor contém a lógica que o Struts executa em
cada requisição a partir do container, por exemplo setar o “content
type” para todas as respostas para o cliente.

11/10/03 © Néki Technologies 2003

7
15/10/2003

Struts, uma visão prática

O mapeamento do ActionServlet
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

11/10/03 © Néki Technologies 2003

Struts, uma visão prática

Instalação e “mão na massa”


1 – Vá até http://jakarta.apache.org/site/binindex.cgi, localize o link
Struts 1.1.zip e descompacte o arquivo jakarta-struts-1.1.zip que você
acabou de baixar.

2 – A instalação do Struts fornece um aplicação “vazia” com os


principais arquivos necessários e configurações padrão. É o arquivo
struts-blank.war localizado na pasta webapps da instalação do Struts.
Copie este arquivo para a pasta webapps do seu Tomcat.

3 – Faça uma cópia do arquivo struts-blank.war e renomeie para


minhaaplic.war. Assim teremos toda a estrutura da nossa aplicação já
montada

11/10/03 © Néki Technologies 2003

8
15/10/2003

Struts, uma visão prática

Estrutura

• struts.jar - contém todas as classes do Struts, pode ser encontrado na


pasta lib da instalação do Struts
• struts-bean.tld, struts-logic.tld e struts-html.tld - definições da tags
básicas que iremos usar em nossas aplicações. Eles também estão na
pasta lib do diretório onde foi descompactado o Struts
• web.xml – deployment descriptor de sua aplicação, onde o container irá
carregar e configurar sua aplicação.
• struts-config.xml – deployment descriptor do Struts, onde configuramos
os vários componentes do Struts.
• application.properties – onde poderemos colocar todas as mensagens
da aplicação (mensagens de erros, título de páginas, rótulo de botões,
etc)

11/10/03 © Néki Technologies 2003

Struts, uma visão prática

Documentação

Para acessar a documentação do struts, temos duas opções

• Acessar a documentação on-line em


http://jakarta.apache.org/struts/userGuide

• Acessar a documentação localmente fazendo uma cópia do arquivo


struts-documentation.war para a pasta webapps do tomcat e ir em
http://localhost:8080/struts-documentation

11/10/03 © Néki Technologies 2003

9
15/10/2003

Struts, uma visão prática

Uma aplicação com Struts

Vamos desenvolver uma agenda de telefones.


Esta agenda terá 3 páginas:

• Welcome.jsp – uma página de entrada onde haverão os links: listar


telefones e cadastrar novo telefone
• Newphone.jsp – uma página de cadastro onde o usuário deverá digitar o
número do telefone, o nome da pessoa e o tipo de telefone (comercial,
residencial, celular ou outro)
• Phonelist.jsp – página para listar todos os telefones cadastrados, com
links para editar e excluir os telefones

11/10/03 © Néki Technologies 2003

Struts, uma visão prática

Uma aplicação com Struts

Usaremos o banco MySQL, com uma base de dados chamada agendaodj


contendo uma tabela chamada telefones com os campos:

• id – um inteiro do auto-incrementável

• telefone – string que guarda o número do telefone

• nome – string que guarda o nome da pessoa

• tipo – string que guarda o tipo do telefone (residencial, comercial, celular e


outro)

11/10/03 © Néki Technologies 2003

10
15/10/2003

Struts, uma visão prática

Criando a aplicação

Coloque o arquivo minhaaplic.war que criamos a pouco, na pasta webapps


do Tomcat. Inicie-o, será criada uma pasta de nome “minhaaplic”

Se a pasta não for criada por algum motivo, crie esta pasta manualmente e
depois use um descompactador de arquivos (winzip por exemplo) para
extrair todo o conteudo de minhaaplic.war para dentro da pasta criada

11/10/03 © Néki Technologies 2003

Struts, uma visão prática

Criando a aplicação
Crie um novo projeto de nome AgendaODJ no Eclipse apontando para a pasta
minhaaplic

11/10/03 © Néki Technologies 2003

11
15/10/2003

Struts, uma visão prática

Criando a aplicação

Nas propriedades deste novo projeto vamos definir

• source folder – uma nova pasta em AgendaODJ/src

• output folder – a pasta existente AgendaODJ/WEB-INF/classes

Desta forma, todos os fontes presentes em src irão gerar arquivos *.class
dentro de WEB-INF/classes

Não confunda AgendaODJ/src com o WEB-INF/src que veio com o struts,


usaremos uma pasta src na raiz para o projeto ficar mais elegante.

11/10/03 © Néki Technologies 2003

Struts, uma visão prática

Criando a aplicação – Source e output folders

11/10/03 © Néki Technologies 2003

12
15/10/2003

Struts, uma visão prática

Criando a aplicação – Libraries

11/10/03 © Néki Technologies 2003

Struts, uma visão prática

Começando a desenvolver

Configurando o arquivo de resources para a internacionalização

• Vamos modificar o nome do nosso arquivo de mensagens, no WEB-


INF/struts-config.xml, localize
<message-resources parameter="resources.application"/>
e troque para
<message-resources parameter="resources.ApplicationMessages"/>
Agore crie o folder src/resources e dentro dele 2 arquivos:
ApplicationMessages.properties e ApplicationMessages_en_US.properties

NOTA: pt_BR identifica o idioma inglês(en) dos EUA(US), para encontrar a lista dos códigos de idiomas
e países vá até http://ftp.ics.uci.edu/pub/ietf/http/related/iso639.txt e
http://ftp.ics.uci.edu/pub/ietf/http/related/iso3166.txt respectivamente.

11/10/03 © Néki Technologies 2003

13
15/10/2003

Struts, uma visão prática

DEMONSTRAÇÃ
DEMONSTRAÇÃO
O

11/10/03 © Néki Technologies 2003

Struts, uma visão prática

Tags do Struts
Devemos dizer ao JSP onde estão as tlds através do @taglib:

<%@ taglib uri="/tags/struts-bean" prefix="bean" %>


<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>

• Struts html tags – usadas para gerar as tags html como campos de
formulário, por exemplo.
• Struts bean tags – usadas para definir ou acessar beans em qualquer
escopo da aplicação (page, request, session e application)
• Struts logic tags – usadas para testes condicionais, looping em
coleções e fluxo da aplicação

11/10/03 © Néki Technologies 2003

14
15/10/2003

Struts, uma visão prática

A página Welcome.jsp
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>

<html:html locale="true">
<head>
<title><bean:message key="welcome.title"/></title>
<html:base/>
</head>
<body bgcolor="white">

<logic:notPresent name="org.apache.struts.action.MESSAGE“ scope="application">


<font color="red">ERROR: Application resources not loaded</font>
</logic:notPresent>

<h3><bean:message key="welcome.heading"/></h3>
<p><bean:message key="welcome.message"/></p>
</body>
</html:html>

11/10/03 © Néki Technologies 2003

Struts, uma visão prática

O código HTML gerado pela página


Welcome.jsp
<html lang="pt">
<head>
<title>Minhaaplic de Carlos Magno</title>
<base href="http://localhost:8080/minhaaplic/pages/Welcome.jsp">
</head>
<body bgcolor="white">

<h3>Bemvindo ao minicurso de Struts do ODJ 3!</h3>

<p>Está e a primeira página de minhaaplic, a minha primeira aplicação


baseada em Struts<br><b>É show de bola !!</b></p>

</body>
</html>

11/10/03 © Néki Technologies 2003

15
15/10/2003

Struts, uma visão prática

DEMONSTRAÇÃ
DEMONSTRAÇÃO
O

11/10/03 © Néki Technologies 2003

Struts, uma visão prática

Referências
Struts web page – http://jakarta.apache.org/struts
Página oficial do Struts, onde pode ser feito o download e pode ser
encontrado a documentação on-line

Struts Resources - http://jakarta.apache.org/struts/resources


Uma página de refetência ótima tanto para aqueles que estão começando
a usar o Struts quanto para aqueles que já o utilizam.
Contém links para aplicações de exemplo, arquivos de listas de
discussão, artigos, tutoriais, notícias sobre o Struts, etc.

11/10/03 © Néki Technologies 2003

16
15/10/2003

Struts, uma visão prática

Por Carlos Magno

11/10/03 © Néki Technologies 2003

17

Das könnte Ihnen auch gefallen