Você está na página 1de 10

Listado Como ya hemos indicado, las clases de negocio y JavaBeans son los mismos que los desarrollados en la prctica

3.1, por lo que remitimos a dicha prctica para consultar los listados de cdigo de estas clases. Los siguientes listados corresponden a las tres clases Action de la aplicacin:

Validar.java package actions; import java.util.ArrayList; import org.apache.struts2.interceptor.*; import org.apache.struts2.util.*; import javax.servlet.http.*; import javax.servlet.*; import modelo.GestionClientes; import modelo.GestionTelefonos ; public class Validar implements ServletContextAware{ private String password="hola"; private String username; private ArrayList<Integer> telefonos; ServletContext context; public String execute() throws Exception { String driver=context.getInitParameter("driver"); String cadenaCon=context.getInitParameter("cadenaCon"); GestionClientes gc= new GestionClientes(driver,cadenaCon); if(gc.validar(username,password)){ GestionTelefonos gt= new GestionTelefonos(driver,cadenaCon); telefonos=gt.getTelefonos(password); return "ok"; } else{ return "error"; } } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public ArrayList<Integer> getTelefonos() { return telefonos; } public void setTelefonos(ArrayList<Integer> telefonos) { this.telefonos = telefonos;

} public void setServletContext(ServletContext context){ this.context=context; } } Registrar.java package actions; import org.apache.struts2.util.*; import javax.servlet.*; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.validator.annotations.*; import modelo.GestionClientes; @Validation public class Registrar extends ActionSupport implements ServletContextAware{ private String nombre; private String apellidos; private String password; private String usuario; private String email; ServletContext context; public String execute() throws Exception { String driver=context.getInitParameter("driver"); String cadenaCon=context.getInitParameter("cadenaCon"); GestionClientes gc= new GestionClientes(driver,cadenaCon); gc.registrar(nombre, apellidos, usuario, password, email); return "registrado"; } //validacin de cadena requerida y longitud //mnima para el password @RequiredStringValidator(message="debe introducir un password") @StringLengthFieldValidator(minLength="6", message="el password debe tener al menos 6 caracteres") public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getApellidos() { return apellidos; } public void setApellidos(String apellidos) { this.apellidos = apellidos; }

//validacin de cadena requerida y valor //vlido para el email @RequiredStringValidator(message="debe introducir un email") @EmailValidator(message="direccin de email no vlida") public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } //validacin de cadena requerida para //el usuario @RequiredStringValidator(message="debe introducir un usuario") public String getUsuario() { return usuario; } public void setUsuario(String usuario) { this.usuario = usuario; } public void setServletContext(ServletContext context){ this.context=context; } }

Listar.java package actions; import java.util.ArrayList; import javabeans.LlamadaBean; import javax.servlet.ServletContext; import modelo.GestionLlamadas; import org.apache.struts2.util.ServletContextAware; public class Listar implements ServletContextAware{ private int telefono; private ArrayList<LlamadaBean> llamadas; ServletContext context; public ArrayList<LlamadaBean> getLlamadas() { return llamadas; } public void setLlamadas(ArrayList<LlamadaBean> llamadas) { this.llamadas = llamadas; } public int getTelefono() { return telefono; } public void setTelefono(int telefono) { this.telefono = telefono; } public String execute() throws Exception { String driver=context.getInitParameter("driver"); String cadenaCon=context.getInitParameter("cadenaCon"); GestionLlamadas gl= new GestionLlamadas(driver,cadenaCon); llamadas=gl.getTodasLlamadasTelefono(telefono); return "llamadas"; } public void setServletContext(ServletContext sc) { this.context=sc; } }

Las vistas se han desarrollado utilizando los tags de Struts 2 comentados a lo largo del Captulo. He aqu los listados de las mismas: login.jsp <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>Hello World!</h1><br/><br/><br/><br/> <center> <h1>Formulario de Autenticacin</h1> <s:form action="login.action" method="post" > <s:textfield name="username" label="usuario"/> <s:password name="password" label="password" showPassword="false" /> <s:submit value="Entrar"/> </s:form> </center> <br/> <br/> <a href="Name.action">Registrese</a> </body> </html>

registro.jsp <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>Formulario de registro</h1> <s:form action="registrar.action" method="post"> <s:textfield name="nombre" label="nombre"/> <s:textfield name="apellidos" label="apellidos"/> <s:textfield name="usuario" label="usuario"/> <s:password name="password" label="password" /> <s:textfield name="email" label="email"/> <s:submit value="Entrar"/> </s:form> <br/> <s:actionerror /> </body> </html> opciones.jsp <%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Bienvenida</title> </head> <body> <center> <h1>Listado de telfonos</h1> <s:form action="listado"> <s:select name="telefono" list="telefonos"

HTML

4.01

Transitional//EN"

headerValue="-seleccione un telefono-" headerKey="0"/> <s:submit value="Ver llamadas"/> </s:form> </center> </body> </html> listado.jsp <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1>Llamadas realizadas</h1> <table border="1"> <tr> <th>Destino</th> <th>Duracin</th> <th>Fecha</th> </tr> <s:iterator value="llamadas"> <tr> <td><s:property value="destino"/></td> <td><s:property value="duracion"/></td> <td><s:property value="fecha"/></td> </tr> </s:iterator> </table> </body> </html>

En cuanto a los archivos de configuracin, quedarn como se indica en los siguientes listados. struts.xml <!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" /> <package name="validacion" namespace="/" extends="struts-default"> <action name="login" class="actions.Validar"> <result name="ok">/opciones.jsp</result> <result name="error">/login.jsp</result> </action> <action name="registrar" class="actions.Registrar"> <result name="registrado">/login.jsp</result> <result name="input">/registro.jsp</result> </action> <action name="listado" class="actions.Listar"> <result name="llamadas">/listado.jsp</result> </action> <action name="Name" > <result>/registro.jsp</result> </action> </package> </struts> web.xml <?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"> <context-param> <param-name>driver</param-name> <param-value>com.mysql.jdbc.Driver</param-value> </context-param> <context-param> <param-name>cadenaCon</param-name> <param-value>

jdbc:mysql://localhost:3306/telefonia </param-value> </context-param> <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>

Você também pode gostar