Está usted en Indice > Construcción > Lenguajes > Java > Lecciones y Paso a Paso > Como crear una aplicación con Struts paso a paso en Java
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Como crear una aplicación con Struts paso a paso en Java (3)

Así, primero creamos las vistas (VOs) que necesitaremos en nuestra aplicación. Para optimizar la implementación, primero creamos una superclase BaseVO que extenderán el resto de vistas. La creamos que implemente java.io.Serializable para que pueda ser referenciada desde un interfaz remoto (cuando implementemos por ejemplo los EJBs):

package com.tutorial.struts.vo;

import java.sql.Timestamp;

// Clase Value Object de la que todas las vistas deberían descender.
public class BaseVO implements java.io.Serializable
{
     private int id;
     private Timestamp timeCreated = null;
     private String description;
     private String name;

     // Constructor por defecto.
     public BaseVO()
     {
         super();
         setTimeCreated(new Timestamp(System.currentTimeMillis()));
     }

    // Constructor a partir de los datos.
     public BaseVO(int id, String name, String desc)
     {
         this();

         this.id = id;
         this.name = name;
         this.description = desc;
     }

    public void setName(String name)
     {
         this.name = name;
     }

     public void setTimeCreated(Timestamp now)
     {
         timeCreated = now;
     }

     public void setDescription(String description)
     {
         this.description = description;
     }

     public void setId(int id)
     {
         this.id = id;
     }

     public String getName()
     {
         return name;
     }

     public String getDescription()
     {
         return description;
     }

     public int getId()
     {
         return id;
     }

     public Timestamp getTimeCreated()
     {
         return timeCreated;
     }

}

Como se puede observar, la clase implementa un JavaBean muy simple con los métodos set/get necesarios. Ahora implementamos una clase que extiende de BaseVO para representar a los productos ( ProductoVO ):

package com.tutorial.struts.vo;

// Clase Value Object que implementa la vista del producto.
public class ProductoVO extends BaseVO
{
     // Datos del VO Producto.
     private String smallImageURL;
     private double basePrice;

     // Constructor por defecto.
     public ProductoVO()
     {
         super();
     }

     // Constructor a partir de los datos.
     public ProductoVO(int id, String name, String desc, double price, String smallImageURL)
     {
         super(id, name, desc);

         setBasePrice(price);
         setSmallImageURL(smallImageURL);
     }

    // ... resto de métodos get/set ...
}

Y también una clase que represente la vista del usuario ( UserVO ), que utilizaremos posteriormente para crear el contenedor de los datos de la sesión:

package com.tutorial.struts.vo;

import com.tutorial.struts.vo.BaseVO;

// Clase Value Object que implementa una vista del usuario.
public class UserVO extends BaseVO
{
     private String lastName;
     private String firstName;
     private String emailAddress;

     public UserVO()
     {
         super();
     }

    // ... resto de métodos get/set ...
}

Ya tenemos creadas todas las vistas (VOs) que necesitamos para nuestra aplicación. Ahora vamos a centrarnos en la implementación del servicio que conectará mediante JDBC con nuestra BD y devolverá la vista adecuada (patrón Business Delegate). Para ello, utilizamos el patrón de diseño Business Interface, según el cual primero creamos un interface a modo de ' caja negra ', que será el único que conozca el cliente. Así, incluso podremos modificar el comportamiento del servicio sin que se entere Struts. El código para la clase ICarritoService se muestra a continuación:

package com.tutorial.struts.service;

import javax.servlet.ServletContext;
import java.util.List;

// Imports de clases propias de la aplicación.
import com.tutorial.struts.vo.ProductoVO;
import com.tutorial.struts.vo.UserVO;

public interface ICarritoService
{
     public List getListaProducto();

     public ProductoVO getDetalleProducto(String itemId);

    public void setServletContext(ServletContext ctx);

     public UserVO authenticate(String email, String password);

     public void logout(String email);

    public void destroy();
}

Aquí deben declararse todos los métodos de negocio que utilizará nuestra aplicación y que podrán ser llamados desde la parte del cliente. A continuación, implementamos el interface mediante la clase CarritoServiceImpl , que es donde va la lógica de negocio:

package com.tutorial.struts.service;

import java.util.List;
import java.util.LinkedList;
import javax.servlet.ServletContext;
import java.sql.*;
import java.io.*;

// Imports de las clases propias de la aplicación.
import com.tutorial.struts.vo.ProductoVO;
import com.tutorial.struts.vo.UserVO;

// Implementamos el servicio que nos da acceso a los datos de la aplicación (BD).
public class CarritoServiceImpl implements ICarritoService
{
     ServletContext servletContext = null;

    // Referencia de conexión a una BD con JDBC.
     Connection con = null;

    /**
     * Creamos el servicio, que incluye inicializar la conexión con la BD..
     **/
     public CarritoServiceImpl()
     {
         super();

         // Abrimos la conexión con la BD.
         init();
     }

    public void setServletContext(ServletContext ctx)
     {
         this.servletContext = ctx;
     }

    public ServletContext getServletContext()
     {
         return servletContext;
     }

    /**
     * Devolvemos la lista de todos los productos.
     **/
     public List getListaProducto()
     {
         // Devolvemos una lista de los productos.
         List listaProducto = new LinkedList();
         ResultSet result = null;

         try
         {
             // Componemos la sentencia SQL para obtener los productos.
             String query = "SELECT * FROM PRODUCTO";

             // Ejecutamos la query y obtenemos el resultado.
             Statement stmt = con.createStatement();
             result = stmt.executeQuery(query);

            int id;
             String nombre, descripcion, smallImageURL;
             double basePrice;

             while (result.next())
             {
                 id = result.getInt("id");
                 nombre = result.getString("nombre");
                 descripcion = result.getString("descripcion");
                 smallImageURL = result.getString("smallImageURL");
                 basePrice = result.getDouble("basePrice");



Usuarios que han visto este tema también han visto...

- La fecha en un JSP
- Tomcat, Java y PostgreSQL
- Usando calendarios y restando fechas en Java
- Forzar la Finalización y la Recolección de Basura en Java
- Escribir en un archivo o consola con Java


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 02-12-2008 a las 03:52:49