Olá Pessoal,
Depois de um bom tempo, sem publicar um post, irei mostrar, como criar uma simples aplicação web, usando o FrameWork Struts 1.3. Para quem não conhece, o Struts é um framework open-source do projeto Jakarta, ele possibilita o desenvolvimento de aplicacões web, atuando como um Controller no padrão MVC e também oferece suporte na camada View, para a construção de páginas JSP através de custom tags.
O exemplo deste post é simples, teremos um formulário para preencher os dados de uma Pessoa, se a idade desta pessoa for maior de 18 anos, encaminhamos para uma página de sucesso, caso contrário, encaminhamos para uma página de falha. O projeto foi desenvolvido, usando o Eclipse + JBoss.
O Struts pode ser baixado no site http://struts.apache.org/download.cgi.
Ao final do post, o projeto será disponibilizado para download, com as libs, já inclusa.
1. Passo: Estrutura do projeto:
2. Passo: Crie uma Classe, chamada Pessoa:
package com.blogspot.jabesfelipe.struts.bean;
public class Pessoa {
private String nome; private int idade; private float altura; private char sexo;
public String getNome() { return nome; }
public void setNome(String nome) { this.nome = nome; }
public int getIdade() { return idade; }
public void setIdade(int idade) { this.idade = idade; }
public float getAltura() { return altura; }
public void setAltura(float altura) { this.altura = altura; }
public char getSexo() { return sexo; }
public void setSexo(char sexo) { this.sexo = sexo; }
}Pessoa.java
3. Passo: Crie uma Classe, chamada PessoaFormBean, ela vai extender da Classe ActionForm, os form-beans se integram a um formulário de entrada de dados.
package com.blogspot.jabesfelipe.struts.formbean;
import org.apache.struts.action.ActionForm;import com.blogspot.jabesfelipe.struts.bean.Pessoa;
public class PessoaFormBean extends ActionForm {
/** * */ private static final long serialVersionUID = -759773695806534156L; private Pessoa pessoa = new Pessoa();
public Pessoa getPessoa() { return pessoa; }
}PessoaFormBean.java
4. Passo: Crie uma Classe, chamada PessoaAction, ela vai extender da Classe Action, e vamos sobrescrever o método execute, que funciona como um método main, esta Classe irá funcionar como o nosso Controller, o método execute, irá retornar um ActionForward, o mapeamento, será configurado no arquivo struts-config.xml.
package com.blogspot.jabesfelipe.struts.action;
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import com.blogspot.jabesfelipe.struts.bean.Pessoa;import com.blogspot.jabesfelipe.struts.formbean.PessoaFormBean;
public class PessoaAction extends Action {
public static final String SUCESSO = "sucesso"; public static final String FALHA = "falha"; public static final String PESSOA = "pessoa";
@Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
Pessoa pessoa = ((Pessoa) ((PessoaFormBean) form).getPessoa()); boolean podeEntrar = false;
if (pessoa.getIdade() >= 18) { podeEntrar = true; } request.setAttribute(PESSOA, pessoa);
return podeEntrar ? mapping.findForward(SUCESSO) : mapping.findForward(FALHA); }
}PessoaAction.java
5. Passo: Vamos criar nossas páginas JSPs, crie uma página index.jsp:
<%@taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%><%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%><%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<logic:forward name="index" />index.jsp
6. Passo: Crie um JSP, para o formulário:
<%@taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%><%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%><%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html:html><head><html:base/><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Simples Exemplo Struts</title></head><body> <html:form focus="pessoa.nome" action="/PessoaAction.do" method="POST"> Nome: <html:text property="pessoa.nome" /><br /> Idade: <html:text property="pessoa.idade" /><br /> Altura: <html:text property="pessoa.altura" /><br /> Sexo: <html:radio property="pessoa.sexo" value="M" />Masculino <html:radio property="pessoa.sexo" value="F" />Feminino<br /><br /> <html:submit value="Ok"/> </html:form></body></html:html>formulario.jsp
7. Passo: Crie, agora a página de sucesso:
<%@taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%><%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%><%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html:html><head><html:base/><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Simples Exemplo Struts</title></head><body> <bean:define id="pessoa" name="pessoa" scope="request" /> Olá <bean:write name="pessoa" property="nome"/>, SEJA BEM VINDO!!! <br /> Sexo: <logic:equal value="M" name="pessoa" property="sexo">Masculino</logic:equal> <logic:equal value="F" name="pessoa" property="sexo">Feminino</logic:equal> <br /><br /> <br /> <html:link action="/Index.do">sair...</html:link></body></html:html>sucesso.jsp
8. Passo: Crie, agora a página de falha:
<%@taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%><%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%><%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html:html><head><html:base /><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Simples Exemplo Struts</title></head><body> <bean:define id="pessoa" scope="request" name="pessoa" /> Olá <bean:write name="pessoa" property="nome" />. <br /> <br /> VOCÊ É MENOR DE IDADE E NÃO PODE ENTRAR!!! <br /> <html:link action="/Index.do">voltar...</html:link></body></html:html>falha.jsp
9. Passo: Agora, precisamos configurar o struts no arquivo web.xml:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>struts-exemplo</display-name>
<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
<servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
</web-app>web.xml
10. Passo: A configuração do arquivo struts-config, incluindo as as definições dos beans,
e os mapeamento das actions:
<?xml version="1.0" encoding="UTF-8"?>
<struts-config> <!-- FORWARDS GLOBAL --> <global-forwards> <forward name="index" path="/Index.do" /> </global-forwards>
<form-beans>
<!-- FORM PESSOA --> <form-bean name="PessoaFormBean" type="com.blogspot.jabesfelipe.struts.formbean.PessoaFormBean" />
</form-beans>
<action-mappings>
<!-- PAGINA INICIAL --> <action path="/Index" include="/formulario.jsp" scope="request" /> <action name="PessoaFormBean" type="com.blogspot.jabesfelipe.struts.action.PessoaAction" path="/PessoaAction" scope="request"> <forward name="sucesso" path="/sucesso.jsp"/> <forward name="falha" path="/falha.jsp"/> </action>
</action-mappings>
</struts-config>struts-config.xml
11. Passo: A aplicação rodando, preenchendo o formulário:

Caso seja sucesso:
Se for falha:
Bom galera, este foi um exemplo de como criar uma simples aplicação web com FrameWork Struts.
Para quem quiser baixar o exemplo, clique aqui.
Qualquer dúvida, crítica ou sugestão, fico à disposição.
14:15
Jabes Felipe




