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
Excelente tutorial
Me sirvio para ejecutar mi primer proyecto struts2 , ¿donde puedo conseguir más información del framework struts2 en español, sigue así…
Gracias por el código , me fue muy útil. Solamente encontré un error : en el jsp AccionEntrar,
en esta línea
if (getUsr() != null && getPas() != null)
los strings deberian compararse con equals para su correcto funcionamiento:
if (!getUsr().equals("") && !getPas().equals("")){
solamente eso :D!