Category : General

1.5 – Ejemplo de Struts2, el hola mundo

1.1.- Requisitos
1.2.- Crear el proyecto en NetBeans
1.3.- Configurar el proyecto para usar Struts 2
1.4.- La vista de nuestro proyecto
1.5.- La capa de negocios
1.6.- Ejecutar el proyecto

La Capa de Negocios

Como habrás podido ver aún nos falta definir una parte importante en el proyecto y es la clase que se encargará de atender la petición del formulario de entrada. Para eso usaremos la siguiente clase:

package ejemplos.struts2.action;
import ejemplos.struts2.beans.Usuario;
import java.util.Map;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.SessionAware;

public class AccionEntrar extends ActionSupport implements SessionAware{
   private Map session;
   private String mensajeError;
   private String usr;
   private String pas;

   public String execute() throws Exception {
      
       if (getUsr() != null && getPas() != null){    //Verificamos que los datos no sean nulos

           Usuario usuario = null;
           // Aqui haremos como que buscamos a nuestro usuario en la base de datos.
           // Si el login y password coinciden normalmente devolveriamos una instancia
           // de usuario con los datos de la cuenta
           // Esto normalmente no se haria en esta capa de codigo!
               if(getUsr().equals("user") && getPas().equals("123")){
                   usuario = new Usuario();
                   usuario.setId(1l);
                   usuario.setNombre("Invitado");
                   usuario.setLogin("user");
                   usuario.setPassword("123");
               }
           //Fin de busqueda

           if(usuario != null){    //Si el usuario se encuentra se agrega a la sesion
               session.put("usuario",usuario);
           }else{                    //Si no se encuentra se devuelve un error
               addActionError("No existe esta cuenta");
               setMensajeError("No existe esta cuenta");
               return ERROR;
           }
       } else {
           addActionError("Inserte datos correctos");
           setMensajeError("Inserte datos correctos");
           return ERROR;
       }
       return SUCCESS;
   }


   public Map getSession() {
       return session;
   }
   public void setSession(Map session) {
       this.session = session;
   }
   public String getUsr() {
       return usr;
   }
   public void setUsr(String usr) {
       this.usr = usr;
   }
   public String getPas() {
       return pas;
   }
   public void setPas(String pas) {
       this.pas = pas;
   }
   public void setMensajeError(String mensajeError) {
       this.mensajeError = mensajeError;
   }
}

descargar: AccionEntrar.java

Hay muchas cosas que aprender de la clase AccionEntrar, sin embargo por el momento solo comentaremos que, entre otras cosas, se encarga de manejar los parametros de entrada del formulario y si son validos los datos, de redirigir al usuario a una página de bienvenida o si no de regresarlo nuevamente al formulario de entrada.

Necesitamos una clase mas, que nos permitirá guardar y controlar la sesión en nuestro proyecto. Aunque en este ejemplo no tiene mayor efecto.

package ejemplos.struts2.beans;
public class Usuario {
   private Long id;
   private String nombre;
   private String login;
   private String password;

   public Long getId() {
       return id;
   }
   public void setId(Long id) {
       this.id = id;
   }
   public String getNombre() {
       return nombre;
   }
   public void setNombre(String nombre) {
       this.nombre = nombre;
   }
   public String getLogin() {
       return login;
   }
   public void setLogin(String login) {
       this.login = login;
   }
   public String getPassword() {
       return password;
   }
   public void setPassword(String password) {
       this.password = password;
   }
}

descargar: Usuario.java

La clase Usuario solo tiene sentido si consideras en un futuro el uso de sesiones para restringir el acceso a páginas privadas y que requieran autenticación. Por el momento no tiene mayor efecto.

No olvides depositar a cada clase en su paquete correspondiente.

1.1.- Requisitos
1.2.- Crear el proyecto en NetBeans
1.3.- Configurar el proyecto para usar Struts 2
1.4.- La vista de nuestro proyecto
1.5.- La capa de negocios
1.6.- Ejecutar el proyecto


1.6 – Ejemplo de Struts2, el hola mundo

1.1.- Requisitos
1.2.- Crear el proyecto en NetBeans
1.3.- Configurar el proyecto para usar Struts 2
1.4.- La vista de nuestro proyecto
1.5.- La capa de negocios
1.6.- Ejecutar el proyecto

Ejecutar el proyecto

Ya tenemos todo lo necesario para correr nuestro primer ejemplo, esta es una vista final de como quedarian nuestros archivos en el proyecto de NetBeans:


Ahora solo tienes que dar un click derecho en la carpeta de proyecto y darle otro click a la opción de correr o «Run»

En nuestro navegador se desplegará la siguiente pantalla


Si le damos a la liga para ir al formulario de entrada en nuestro navegador aparecerá lo siguiente:


Si se ponen datos incorrectos en el formulario de login, el framework se engargará de gestionar la petición y nos enviará a la pantalla de error gracias al flujo que hemos definido en el archivo de struts.xml y al manejo de los datos que hace nuestra clase AccionEntrar.java


Si se introducen los datos correctos, una pantalla de bienvenida se desplegará.


¡Listo! Ya tenemos nuestro primer ejemplo terminado.

Struts2 provee a los desarrolladores de herramientas muy poderosas para facilitar su trabajo, algunas de ellas son los interceptores, que te permiten hacer muchas cosas que normalmente se tenian que programar enteramente en Struts1, por ejemplo, el manejo de la session para usuarios con permisos o la carga de archivos desde el cliente. Los interceptores son una pieza fundamental en este marco de trabajo y haremos algunos ejemplos mas adelante.

Por el momento es todo, espero que este pequeño ejemplo les sirva para familiarizarse con Struts2. Hasta el siguiente post

1.1.- Requisitos
1.2.- Crear el proyecto en NetBeans
1.3.- Configurar el proyecto para usar Struts 2
1.4.- La vista de nuestro proyecto
1.5.- La capa de negocios
1.6.- Ejecutar el proyecto