Bienvenido a la serie de tutoriales de Struts 2, donde exploraremos cómo crear una aplicación web utilizando Struts 2.
En este tutorial, primero crearemos un módulo de inicio de sesión muy simple, luego agregaremos características de Hibernate y Tiles, Ajax, Interceptor, Validator, etc. Finalmente, será una aplicación web Struts 2 completamente funcional – «Quick Memo».
Antes de comenzar, es posible que desee ver un video de 10 minutos para tener una idea básica de cómo usar Struts 2.
1. Objetivo de esta aplicación de muestra
Objetivo: módulo de inicio de sesión.
Finalmente, se ve así.
Cuando inicie sesión correctamente, muestra:
Cuando el inicio de sesión falla, muestra:
2. Herramientas y bibliotecas necesarias
Antes de comenzar con nuestro ejemplo, necesitamos varias herramientas y bibliotecas. Lo siguiente es lo que estoy usando. Por supuesto, puede utilizar una versión superior. 1) JDK 1.5 o superior. 2) Tomcat 6.0 3) Eclipse IDE para desarrolladores de Java EE. 4) Puntales 2.0.14. Archivos JAR necesarios para esta aplicación.
- commons-logging-1.0.4.jar
- freemarker-2.3.8.jar
- ognl-2.6.11.jar
- struts2-core-2.0.12.jar
- xwork-2.0.6.jar
3. Primeros pasos
Cree un proyecto web dinámico.
# note que el directorio de mi proyecto es: C: eclipseworkspace Struts2Login
Copie los archivos JAR necesarios en WebContent-> WEB-INF-> carpeta lib en el directorio del proyecto. Ahora, su proyecto debería gustarle esto.
4. Configurar archivo web.xml
Establezca Struts2 como filtro en el archivo web.xml. Si no entiende por qué configurarlo como filtro, consulte aquí.
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>Struts2 Login</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>Login.jsp</welcome-file> </welcome-file-list> </web-app> |
5. Crear clase de acción de inicio de sesión
Tenga en cuenta que la clase de acción anterior contiene dos campos, nombre de usuario y contraseña. Mantendrán los valores pasados desde el formulario y también contienen un método authenticate () que autenticará a los usuarios. Normalmente, esto se puede configurar con LDAP o Base de datos. Pero aquí para una demostración simple, simplemente verificamos si el nombre de usuario es «admin» y la contraseña es «admin». El método authenticate () devuelve una cadena que determina la página de resultados.
LoginAction.java
package com.programcreek.struts2; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ private String username; private String password; public String authenticate() { if (this.username.equals("admin") && this.password.equals("admin")) { return "success"; } else { addActionError(getText("error.login")); //a function from ActionSupport, to get properties values from properties file //we will explore this below. return "error"; } } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } |
6. Crear paquete de recursos
ResourceBundle es una entidad Java muy útil que ayuda a separar los contenidos estáticos del código fuente. Puede contener algunos mensajes estáticos, como nombres de elementos de formulario. Definimos un archivo ApplicationResources.properties para nuestra aplicación. Este archivo debe estar presente en la carpeta WEB-INF / classes.
Ahora creamos una carpeta de origen llamada recursos como este.
ApplicationResources.properties
label.username= Username label.password= Password label.login= Login error.login= Invalid Username/Password. Please try again.
7. Páginas JSP
Los archivos JSP deben colocarse bajo el Contenido web directorio.
Login.jsp
<%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>Struts 2 - Login Application</title> </head> <body> <h2>Struts 2 - Login Application</h2> <s:actionerror /> <s:form action="login.action" method="post"> <s:textfield name="username" key="label.username" size="20" /> <s:password name="password" key="label.password" size="20" /> <s:submit method="execute" key="label.login" align="center" /> </s:form> </body> </html> |
Struts 2 – Aplicación de inicio de sesión
Welcome.jsp
<%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>Welcome Page - Struts 2 - Login Application</title> </head> <body> <h2>Congratulations, <s:property value="username" />!</h2> Welcome to Struts 2 world. </body> </html> |
¡Felicitaciones, !
Bienvenido al mundo de Struts 2.
8. archivo struts.xml
Cree el archivo struts.xml en el directorio de recursos como el archivo ApplicationResources.properties.
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="false" /> <constant name="struts.custom.i18n.resources" value="ApplicationResources" /> <package name="default" extends="struts-default" namespace="/"> <action name="login" method="authenticate" class="com.programcreek.struts2.LoginAction"> <result name="success">Welcome.jsp</result> <result name="error">Login.jsp</result> </action> </package> </struts> |
9. Hecho
Ejecute el proyecto ahora.
Próximo paso
Una vez que un usuario está autenticado, se mostrará el contenido del sitio web. Normalmente, el contenido proviene de la base de datos, por lo que el siguiente paso es crear una aplicación de base de datos simple con Hibernate.
-> Volver al índice.
Referencias:
Freemarker