Mostrando postagens com marcador Struts. Mostrar todas as postagens
Mostrando postagens com marcador Struts. Mostrar todas as postagens

sábado, 27 de novembro de 2010

Simples Exemplo Struts

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.

Jabes Felipe RSS Feed Jabes Felipe