Você está na página 1de 25

Lenguaje de Programación II

Patrón VLH – DisplayTag - jMesa


Repaso

¿Cuáles serían los pasos


para mostrar el listado
de productos?

Lenguaje de Programación II 2
Caso

¿Qué inconvenientes
presenta un listado de
este tipo?
La mayoría de las aplicaciones tienen un
requerimiento de búsqueda y consulta
de datos.
Dicha operación podría producir
resultados que pueden ser bastante
grandes. Por lo que no es práctico
devolver el conjunto de resultados
completo,

¿Cómo solucionaríamos esto?


Lenguaje de Programación II 3
Contenido

• Patrón de Diseño VLH


• Display Tag
• jMesa

Logros de la Unidad
Los alumnos crearán componentes mediante etiquetas personalizadas en la capa
vista, que permitan mostrar de manera reutilizable la presentación de la
información.

Lenguaje de Programación II 4
Patrón VLH (Value List Handler)

• La aplicación cliente puede requerir una lista de objetos que obtiene a


través de la invocación de un servicio.
• Este patrón implica la creación de un componente que, nos
permite recuperar los valores e iterar por ellos (independientemente de
la implementación) y realizar otras labores de valor añadido.

• Ej. Buscador Google

Lenguaje de Programación II 5
Display Tag

• Es un una librería open source de tags.


• Esta librería permite desplegar una tabla a partir de una lista de
objetos, permitiendo implementar el patrón VLH.
• Esta tabla se podrá ordenar por columnas, separar en paginas,
exportar en distintos formatos, decorar con estilos y otras
funcionalidades.

Lenguaje de Programación II 6
Uso del Display Tag

1. Incluir los .jar y archivos en las carpetas correspondientes

Archivo de propiedades para


el DisplayTag

Hoja de estilos

Imágenes

Librerías requeridas

Lenguaje de Programación II 7
Uso del Display Tag

2. En las páginas donde se utilizará DisplayTag, incluir:


<%@ taglib prefix="display" uri="http://displaytag.sf.net" %>

<head>
<link href="css/displaytag.css" rel="stylesheet" type="text/css" >
<link href="css/screen.css" rel="stylesheet" type="text/css" media="screen" />
</head>

3. Para mostrar la Tabla, utilizar la etiqueta display:table


<!-- muestra un listado usando DisplayTag -->
<display:table name="nombredelListado">

</display:table> Listado creado en el Servlet y


enviado como atributo

Lenguaje de Programación II 8
Servlet y JSP
• Ejemplo del Servlet

Listado creado en el Servlet y


enviado como atributo

• Muestra la lista usando en listado.jsp

Lenguaje de Programación II 9
Configurando el DisplayTag

Elemento Descripción
<display column> Permite especificar las columnas a mostrar. utiliza:
property="atributoBean" title="nombre de la columna".

pagesize Especifica a la tabla la cantidad de páginas a visualizar.

Lenguaje de Programación II 10
Configurando el DisplayTag

Elemento Descripción
export Indica si podrá exportar el contenido de la tabla.

sortable Indica si se ordenará la información según la columna.

A nivel de tabla podemos usar los atributos:


defaultsort="2" defaultorder="descending"

Lenguaje de Programación II 11
Actividad

• Aplica los elementos necesarios para mostrar la tabla, de la


siguiente forma:

Lenguaje de Programación II 12
Mejorando el Listado
Extendiendo funcionalidad
• Podemos crear columnas que extiendan funcionalidad del DisplayTag,
agregando enlaces, imágenes y otros controles

Lenguaje de Programación II 14
Extendiendo funcionalidad
• Para ello:
Paso 1. creamos una clase (Wrapper) para la lógica
del código. Esta clase contendrá métodos get, que
se llamarán en la tabla como atributos o property.
Ej.

package decorator;
import org.displaytag.decorator.TableDecorator;

public class Wrapper extends TableDecorator {

public String getNombreRecurso() { Método get a definir como atributo


// acciones a realizar

return ""; Cadena con la acción a realizar


}
}

Lenguaje de Programación II 15
Ejemplo de Clase Wrapper

Paso 2. En el DisplayTag…
– Agregamos la clase Wrapper

– Agregamos al DisplayTag las columnas de recursos definidos en la clase


Wrapper Ej.

Lenguaje de Programación II 16
Actividad 1

• Crea la clase Wrapper y los métodos para realizar lo siguiente:

Lenguaje de Programación II 17
Actividad 2

• Dados las siguientes imágenes de productos.

• Completar el método para retornar la “foto” del producto

Lenguaje de Programación II 18
Actividad
Tarea

• Mejora el listado para realizarlo por


categorías. Puedes utilizar combos o
hipervínculos
Clase Wrapper y Datos

• Utilizando los métodos de la clase Wrapper, podemos capturar


datos que se pueden reenviar a otros recursos como páginas o
servlets. Ej.

• Al dar un clic, se enviará a la página ventas.jsp, el parámetro


código.

Lenguaje de Programación II 21
Propuesto

• Crea las páginas:

compra.jsp
consulta.jsp
• La imagen lupa, debe de llamar al servlet que de devuelve el listado
• Crea el campo selecciona de manera que al hacer clic envíe los datos del
producto al jsp compra
Propuesto 2

• Mejora el icono de la tabla, de manera que al pasar el mouse, cambie


la imagen. Ej.
Información adicional
• http://java.sun.com/blueprints/corej2eepatterns/Patterns/ValueListHandler.h
tml

• http://www.coderanch.com/t/98606/OO-Patterns-UML-Refactoring/Value-
List-Handler-pattern

• http://displaytag.sourceforge.net/11/

• http://jupabeans.blogspot.com/2008/05/displaytag-y-tabledecorator.html

• http://java.sun.com/blueprints/corej2eepatterns/Patterns/ValueListHandler.h
tml

• http://code.google.com/p/jmesa/

• http://code.google.com/p/jmesa/wiki/Tutorials
Primer avance
• Semana 11 (Calificación: 10% de la nota Trabajos Prácticos)
• Objetivo: Validar y Aprobar técnicamente las funcionalidades
asignadas

– Explicación general de la aplicación a desarrollar


– Documentación de la realización del análisis
– Diagrama general de casos de uso resaltando los casos de uso a
programar propuestos (Los casos de uso son propuestos por los
integrantes del equipo de proyecto y aprobados en la semana 10)
– Especificaciones detallada por cada Caso de Uso identificado en el
curso ADSII
– Proyecto Web: Prototipos (JSP o HTML linkeado) de los casos de uso
identificados en el curso ADSII
– Diseño Lógico y Físico de la base de Datos (Versión Inicial)

Você também pode gostar