Simples Exemplo Struts
Autor: Jabes Felipe | Publicado: 2010-11-27T14:15:00-08:00

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:&lt;%@taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%&gt;&lt;%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%&gt;&lt;%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%&gt;&lt;logic:forward name="index" /&gt;index.jsp6. Passo: Crie um JSP, para o formulário:&lt;%@taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%&gt;&lt;%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%&gt;&lt;%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%&gt;&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;&lt;html:html&gt;&lt;head&gt;&lt;html:base/&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&gt;&lt;title&gt;Simples Exemplo Struts&lt;/title&gt;&lt;/head&gt;&lt;body&gt;	&lt;html:form focus="pessoa.nome" action="/PessoaAction.do" method="POST"&gt;		Nome: &lt;html:text property="pessoa.nome" /&gt;&lt;br /&gt;		Idade: &lt;html:text property="pessoa.idade" /&gt;&lt;br /&gt;		Altura: &lt;html:text property="pessoa.altura" /&gt;&lt;br /&gt;		Sexo: &lt;html:radio property="pessoa.sexo" value="M" /&gt;Masculino			  &lt;html:radio property="pessoa.sexo" value="F" /&gt;Feminino&lt;br /&gt;&lt;br /&gt;		&lt;html:submit value="Ok"/&gt;	&lt;/html:form&gt;&lt;/body&gt;&lt;/html:html&gt;formulario.jsp7. Passo: Crie, agora a página de sucesso:&lt;%@taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%&gt;&lt;%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%&gt;&lt;%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%&gt;&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;&lt;html:html&gt;&lt;head&gt;&lt;html:base/&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&gt;&lt;title&gt;Simples Exemplo Struts&lt;/title&gt;&lt;/head&gt;&lt;body&gt;	&lt;bean:define id="pessoa" name="pessoa" scope="request" /&gt;	Olá &lt;bean:write name="pessoa" property="nome"/&gt;, SEJA BEM VINDO!!! &lt;br /&gt; 	Sexo: 	&lt;logic:equal value="M" name="pessoa" property="sexo"&gt;Masculino&lt;/logic:equal&gt;	&lt;logic:equal value="F" name="pessoa" property="sexo"&gt;Feminino&lt;/logic:equal&gt;	&lt;br /&gt;&lt;br /&gt;					&lt;br /&gt;	&lt;html:link action="/Index.do"&gt;sair...&lt;/html:link&gt;&lt;/body&gt;&lt;/html:html&gt;sucesso.jsp8. Passo: Crie, agora a página de falha:&lt;%@taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%&gt;&lt;%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%&gt;&lt;%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%&gt;&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;&lt;html:html&gt;&lt;head&gt;&lt;html:base /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&gt;&lt;title&gt;Simples Exemplo Struts&lt;/title&gt;&lt;/head&gt;&lt;body&gt;	&lt;bean:define id="pessoa" scope="request" name="pessoa" /&gt;	Olá &lt;bean:write name="pessoa" property="nome" /&gt;.		&lt;br /&gt;	&lt;br /&gt;	VOCÊ É MENOR DE IDADE E NÃO PODE ENTRAR!!!		&lt;br /&gt;	&lt;html:link action="/Index.do"&gt;voltar...&lt;/html:link&gt;&lt;/body&gt;&lt;/html:html&gt;falha.jsp9. Passo: Agora, precisamos configurar o struts no arquivo web.xml:&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;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"&gt;	&lt;display-name&gt;struts-exemplo&lt;/display-name&gt;	&lt;welcome-file-list&gt;		&lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;	&lt;/welcome-file-list&gt;	&lt;servlet&gt;		&lt;servlet-name&gt;action&lt;/servlet-name&gt;		&lt;servlet-class&gt;org.apache.struts.action.ActionServlet&lt;/servlet-class&gt;		&lt;init-param&gt;			&lt;param-name&gt;config&lt;/param-name&gt;			&lt;param-value&gt;/WEB-INF/struts-config.xml&lt;/param-value&gt;		&lt;/init-param&gt;		&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;	&lt;/servlet&gt;	&lt;servlet-mapping&gt;		&lt;servlet-name&gt;action&lt;/servlet-name&gt;		&lt;url-pattern&gt;*.do&lt;/url-pattern&gt;	&lt;/servlet-mapping&gt;&lt;/web-app&gt;web.xml10. Passo: A configuração do arquivo struts-config, incluindo as as definições dos beans, e os mapeamento das actions:&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;struts-config&gt;		&lt;!-- FORWARDS GLOBAL --&gt;	&lt;global-forwards&gt;		&lt;forward name="index" path="/Index.do" /&gt;	&lt;/global-forwards&gt;		&lt;form-beans&gt;		&lt;!-- FORM PESSOA --&gt;		&lt;form-bean name="PessoaFormBean" type="com.blogspot.jabesfelipe.struts.formbean.PessoaFormBean" /&gt;	&lt;/form-beans&gt;	&lt;action-mappings&gt;		&lt;!-- PAGINA INICIAL --&gt;		&lt;action path="/Index" include="/formulario.jsp" scope="request" /&gt;				&lt;action name="PessoaFormBean" type="com.blogspot.jabesfelipe.struts.action.PessoaAction" 			path="/PessoaAction" scope="request"&gt;			&lt;forward name="sucesso" path="/sucesso.jsp"/&gt;			&lt;forward name="falha" path="/falha.jsp"/&gt;		&lt;/action&gt;	&lt;/action-mappings&gt;&lt;/struts-config&gt;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.