Grupo de Pesquisa em ENGENHARIA DE SOFTWARE
Struts
Professores:
Danillo Leal Belmonte
Mônica H. Pietruchinski
Simone de Almeida
Simone Nasser Matos
Tarcízio Alexandre Bini
Alunos:
Karléia Braun
Marcos Ferreira Vosgerau
Rafael Hornung
Campus de
Ponta Grossa - Paraná
1
Historico
Maior parte desenvolvida em maio de 2000,
onde tinha uma equipe de 30
desenvolvedores. O responsável pelo
projeto era Craig R. MacClanahan
Doado a fundação Apache (Apache
Software Foundation)
Campus de
Ponta Grossa - Paraná
2
Framework Jakarta Struts
O Struts é um framework para web que se
tornou padrão na comunidade JEE (Java
Enterprise Edition). O Struts provê uma
implementação do modelo MVC-2 para
construções de aplicações web.
Campus de
Ponta Grossa - Paraná
3
Funcionamento
Campus de
Ponta Grossa - Paraná
4
Descrição das Etapas
1. Cada solicitação HTTP tem que ser respondida neste mesmo protocolo.
Desta forma, inicia-se uma aplicação que utiliza o Struts. Esta
solicitação normalmente é definida como requisicao.do, que é um nome
lógico para a requisição do usuário.
2. A solicitação requisicao.do é mapeada no arquivo struts-config.xml.
Neste arquivo estão todas as definições do controlador do framework. O
arquivo é então lido por um ActionServlet (que fará efetivamente o papel
do controlador da aplicação) na inicialização da aplicação criando então
um banco de objetos com o arquivo de configuração. No arquivo de
configuração são definidos os Actions (requisições dos usuários) para
cada solicitação.
3. O ActionServlet (que faz o papel do controlador da aplicação), define o
Action correspondente para a solicitação. Um Action pode validar a
entrada de dados e acessar a camada de negócios para recuperar as
informações nos bancos de dados e outros serviços de dados.
Campus de
Ponta Grossa - Paraná
5
Descrição das Etapas
4. A requisição HTTP pode ser feita também através de um
formulário HTML. Em vez de fazer com que cada Action
retire os valores do campo da solicitação, o ActionServlet
coloca a entrada em um JavaBean. Estes JavaBeans são
definidos como FormBeans no Struts e estendem a classe
org.apache.struts.action.ActionForm (os Actions e
FormBeans serão abordados com maiores detalhes no
decorrer do artigo).
5. O Action pode acessar o FormBean, efetuar qualquer
operação e armazenar o resultado em um ResultBean.
6. O Action interage com a camada de negócio onde uma base
de dados poderá ser atualizada.
Campus de
Ponta Grossa - Paraná
6
Exemplo utilizando o Struts
O exemplo a ser demonstrado será de um
cadastro de Funcionários
O código não esta completo, será
demonstrada apenas as principais
funções.
Campus de
Ponta Grossa - Paraná
7
FuncionarioForm.java
package org.fun.form;
import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.*;
public final class funcionarioForm extends ActionForm {
private String codigo = null;
private String nome = null;
private String telefone = null;
private String cidade = null;
private String estado = null;
private String rua = null;
private String bairro = null;
private String complemento = null;
private String cargo = null;
/** Criação de todos os Sets e Gets*/
public void reset(ActionMapping arg0, HttpServletRequest arg1) {
codigo = null;
nome = null;
telefone = null;
cidade = null;
estado = null;
rua = null;
bairro = null;
complemento = null;
cargo = null;
Campus
}
}
de
Ponta Grossa - Paraná
8
FuncionarioAction.java
package org.fun.action;
import javax.servlet.http.*; import org.apache.struts.action.*;
import org.fun.form.funcionarioForm;
public final class funcionarioAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response)
{
funcionarioForm funForm = (funcionarioForm) form; // get the form bean
// and take the last name value
String codigo = funForm.getCodigo();
String nome = funForm.getNome();
String telefone =funForm.getTelefone();
String cidade = funForm.getCidade();
String estado = funForm.getEstado();
String rua = funForm.getRua();
String bairro = funForm.getBairro();
String complemento = funForm.getComplemento();
String cargo = funForm.getCargo();
return (mapping.findForward("success"));
}
}
Campus de
Ponta Grossa - Paraná
9
MessageResources.properties
# -- mensagem inicio -inicio.titulo= Funcionarios
inicio.cadFun=Cadastrar Funcionario
inicio.cadFun2=Aqui voce pode estar cadastrando os seus Funcionarios
# -- campos -campo.codigo=Codigo:
campo.nome=Nome:
campo.telefone=Telefone:
campo.cidade=Cidade:
campo.estado=Estado:
campo.rua=Rua:
campo.bairro=Bairro:
campo.complemento=Complemento:
campo.cargo=Cargo:
# -- nomes dos botões -botao.cadastrar=Cadastrar
botao.excluir=Excluir
botao.pesquisar=Pesquisar
botao.editar=Alterar
botao.reset=Limpar
Campus de
Ponta Grossa - Paraná
10
Struts-config.xml
<!-- ======================================== Form Bean Definitions -->
<form-beans>
<form-bean name="cadastrarForm" type="org.fun.form.funcionarioForm">
<form-property name="codigo" type="java.lang.String" />
<form-property name="nome" type="java.lang.String" />
</form-bean>
<!-- ======================================== Action -->
</form-beans>
<action
path="/cadastrarFuncionario"
type="org.fun.action.funcionarioAction"
name="cadastrarForm"
scope="request"
input="/pages/funcionario/cadastrar.jsp"
>
<forward name="success" path="/pages/funcionario/cadastrar.jsp" />
<forward name="failure" path="/pages/funcionario/cadastrar.jsp" />
</action>
<!-- ================================ Message Resources Definitions -->
<message-resources parameter="org.fun.MessageResources.MessageResources" />
Campus de
Ponta Grossa - Paraná
11
Cadastro.jsp
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html>
<head>
<title><bean:message key="inicio.titulo"/></title>
</head>
<body>
<h1><center><bean:message key="inicio.cadFun"/></center></h1>
<hr>
<html:form action="cadastrarFuncionario">
<table height="450" width="350" border=0">
<tr>
<td><bean:message key="campo.codigo"/></td>
<td><html:text property="codigo" size="30"/></td>
</tr>
<tr>
<td><bean:message key="campo.nome"/></td>
<td><html:text property="nome" size="30"/></td>
</tr>
<td align="center"><html:submit ><bean:message key="botao.cadastrar"/></html:submit></td>
<td align="center"><html:reset ><bean:message key="botao.reset"/></html:reset></td>
</tr>
</table>
</html:form>
<a href="http://127.0.0.1:8080/Cadastro-Struts/index.jsp">Voltar Pagina Principal</a>
</body>
</html>
Campus de
Ponta Grossa - Paraná
12
Download

Struts