Embora o Struts 2 ofereça uma quantidade enorme de recursos, muitas empresas ainda usam o Struts 1.2.x ou 1.3.x, neste artigo veremos um exemplo bem simples de Struts, bem básico mesmo.
Agora iremos criar um arquivo index.jsp ao qual teremos links para os exemplos que nós veremos em nossas próximos artigos.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Exemplos com Struts</title>
</head>
<body>
<div align="center">
<h1>Indice de Exemplos<br> com Struts 1.2.x</h1>
<ol>
<li><a href="Registro1.jsp">Exemplo 1</a></li>
<li>Exemplo2</li>
</ol>
</div>
</body>
</html>
Edite o arquivo web.xml para se parecer com o mostrado abaixo:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<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>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Em strutsaula/web crie o arquivo Registro1.jsp :
<html>
<head>
<title></title>
</head>
<body bgcolor="white">
<div align="center">
<h1>New Registration</h1>
<form action="Register1.do" method="POST">
Email: <input type="text" name="email" /><br>
Senha: <input type="password" name="password" /><br>
<input type="submit" value="Enviar" />
</form>
</div>
</body>
</html>
Em strutsaula2/web/WEB-INF/results/ crie o arquivo confirm.jsp com o código descrito abaixo.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Exemplo com Struts</title>
</head>
<body>
<div align="center">
<H1>Seu Registro foi Completado com Sucesso.</H1>
Parabéns!!!
<p/>
<a href="index.jsp">Voltar ao Índice</a>
</div>
</body>
</html>
Agora configuraremos o arquivo struts-config.xml com o conteúdo mostrado abaixo:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<action-mappings>
<action path="/Register1" type="strutsaula.RegisterAction1">
<forward name="success" path="/WEB-INF/results/confirm.jsp"/>
</action>
</action-mappings>
</struts-config>
Crie um pacote com o nome strutsaula e nele crie a classe RegisterAction1.java com o conteúdo mostrado a seguir:
package strutsaula;
import javax.servlet.http.*;
import org.apache.struts.action.*;
/**
*
* @author claudio
*/
public class RegisterAction1 extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
return(mapping.findForward("success"));
}
}
As imagens abaixo demonstram a primeira parte do nosso artigo em funcionamento:
Bom se você chegou até aqui, então vamos entender o que foi feito:
- O Usuário submete o formulário conforme a Figura 2 para a url Register1.do, esse endereço foi mapeado no struts-config.xml para um classe RegisterAction1.class;
- O Método Action de RegisterAction1.class é invocado e usa o mapping.findForward para retornar uma condição, as condições estão mapeadas no struts-config.xml. Veja o código do Struts XML.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<action-mappings>
<action path="/Register1" type="strutsaula.RegisterAction1">
<forward name="success" path="/WEB-INF/results/confirm.jsp"/>
</action>
</action-mappings>
</struts-config>
Na Figura 3 o Struts mostra ao usuário a página apropriada.
Isso é apenas o começo, nos próximos artigos veremos muito mais sobre o Struts.