Tapestry 5
Tapestry 5
Tapestry 5
Santiago Murgolo
Agenda
Introduccin Caractersticas
Pginas
Componentes Integracin
Historia y Configuracin
Ejemplo Factores a tener en cuenta Links
Introduccin
Tapestry es un framework J2EE de cdigo abierto para el desarrollo de interfaces de aplicaciones Web Java basadas en componentes y orientadas a objetos siendo: Dinmicas Robustas Altamente escalables se basa en el estndar de la API Java Servlet, por lo que funciona en cualquier contenedor servlet o servidor de aplicaciones.
Caractersticas
Orientado a componentes:
Una aplicacin se compone de un conjunto de pginas Web, cada una de las cuales se construye a partir de componentes que pueden generar diversos eventos ante los que la pgina puede reaccionar.
Caractersticas (cont.)
Implementa la arquitectura modelo-vista-controlador(MVC)
Caractersticas (cont.)
El framework maneja: Procesamiento de demandas (analisis, envio)
Creacin de URL
Control del estado de la pgina (persistencia de los datos) Validacin de los datos ingresados por el usuario Internacionalizacin de la informacin Control de errores y generador de reportes de excepciones
Paginas en Tapestry
Cada Pagina o componente es representada por: Clase Java Plantilla opcional (XML)
Ambas deben tener el mismo nombre El objetivo de la clase Java es recibir los eventos relativos a la pgina y el objetivo de la plantilla es generar la vista de la pgina
Paginas: Plantillas
Las plantillas de los componentes son: documentos gramaticalmente correctos en XML no hay JSP la mayora son archivos XHTML Tiene extension .tml El XML incluir referencias a componentes y tambin puede incluir expansiones
cada vez que se trabaja con una pgina puede ser una instancia distinta
Paginas: Filtros
Proporcionan un mecanismo estndar para interceptar peticiones y respuestas dentro de un contenedor de Servlets, permitiendo utilizar la informacin contenida, adems:
Capturan una peticin y cambiar su flujo Realizan transformaciones sobre las respuestas generadas Se definen con la etiqueta filter: filter-name filter-class La etiqueta filter-mapping indica cuando debe invocarse un Filtro: filter-name url-pattern
Procesa todas las peticiones relativas a Tapestry y pasa el resto de peticiones al contenedor de Servlets
La primer pagina que maneja una peticin es Index
web.xml
pom.xml
<filter> <filter-name>app</filter-name> <!-- Special filter that adds in a T5 IoC module derived from the Spring WebApplicationContext. --> <filter-class>org.apache.tapestry5.spring.TapestrySpringFilter</filter-class> </filter> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
web.xml
Componentes
Son clases concretas ya que no extienden de ninguna clase base ni implementan interfaces No necesitan configuracin via archivos XML Facil empaquetamiento y reutilizacin en otras aplicaciones Con la notacin @component se puede embeber un componente con caractersticas especiales dentro de otro
import org.example.app.components.Count;
public class Countdown { @Component(parameters = { "start=5", "end=1", "value=countValue" }) private Count count; @Property private int countValue; }
Componentes: Grid
<t:grid t:source="allCelebrities" rowsPerPage="5"/>
Page.tml
Page.java
{
this.value = value; }
Tapestry 4 Tapestry 5
Desarrollo desde cero No hay compatibilidad con versiones anteriores T4: dificil T5: facil T4: facil T5: Automatico
Entorno de Desarrollo
Estructura de la aplicacin
Ejecucin
Despliegue de la aplicacin en el servidor Jetty
Variedad de Frameworks
Usuarios
Links
Sitio Oficial:
http://tapestry.apache.org/tapestry5/
Blog del Autor:
http://tapestryjava.blogspot.com/
Wiki HowTos:
http://wiki.apache.org/tapestry/Tapestry5HowTos
Demos y Ejemplos:
http://jumpstart.doublenegative.com.au:8080/jumpstart/
PREGUNTAS