Вы находитесь на странице: 1из 36

Y3K-it

Solution Builders

Tapestry
Mdulo I
Agenda
Fundamentos y Objetivos Tapestry

Model-View-Controller Pattern

Clases e interfaces esenciales del framework

Ejemplo Hola Mundo. Despliegue en Tomcat


Web Container
Agenda
Fundamentos y Objetivos Tapestry

Model-View-Controller Pattern

Clases e interfaces esenciales del framework

Ejemplo Hola Mundo. Despliegue en Tomcat


Web Container
Fundamentos y Objetivos Tapestry
Conceptos

Tapestry reconceptualiza el desarrollo de


aplicaciones web en trminos de objetos Java,
mtodos y properties
Remueve URLS, query parameters, servlets,
HttpSession de la consideracin de los
desarrolladores
Las pginas de la aplicacin cooperan en
trmino de objetos Java y mtodos, no URLs y
query parameters
Fundamentos y Objetivos Tapestry
Conceptos

Permite controllar 100% el HTML generado.


Construir aplicaciones complejas desde simples
y reutilizable componentes
Reduce los tiempos de codificacin
Impulsa la robustez de aplicaciones
Propone una simple interaccin entre HTML
producers and Java developers
Fundamentos y Objetivos Tapestry
Conceptos

Es una alternativa a JSP, ms dinmica y no


genera cdigo
Verdadera separacin entre HTML y cdigo
Java
No cdigo Java en template HTML
Propone HTML esttico con algunos elementos
marcados como "dinmicos"
Fundamentos y Objetivos Tapestry
Conceptos

Los componentes de Tapestry provee comportamiento


dinmico
Si luciendo como HTML normal, sin tags especiales
Potencia Java Developers
Escribir menos cdigo
La estandarizacin de soluciones a problemas comunes
Rompe con la "tirana de la URL". Se desarrolla en trminos de
objetos y propiedades
Fundamentos y Objetivos Tapestry
Tapestry ciclo
Fundamentos y Objetivos Tapestry
Conceptos

El Framework genera los links de respuesta


para despachar la lgica (incluyendo la
generacin de URLs para links y formularios)
Los desarrolladores provee punteros hacia el
application-specific code, que se ejecuta
cuando se clickea un link o se realiza un submit
de un formulario
Los desarrollados deciden que y cuando, y el
framework provee el como
Fundamentos y Objetivos Tapestry
Qu es un componente?

En general, cada framework tiene su propia


definicin de "componente"

Tiene que interactuar con la aplicacin y otros


componentes

"Black-box": no se debera tener ningn


conocimiento sobre su implementacin, solamente
su interfase
Fundamentos y Objetivos Tapestry
Qu es un componente?

Swing
Responsable de dibujarse en un espacio 2D
Propiedades configuradas por aplicacin
Interaccin con el usuario:
Event queue -> component
Aplicacin como event notification listener
Fundamentos y Objetivos Tapestry
Qu es un componente?

Tapestry
Renderiza una porcin de (unidimensional)
HTML stream
Tiene parametros que permiten cambiar su
comportamiento o configurarlos.
Interaccin con el usuario:
Servlet -> Framework -> Component
Aplicacin delega a componentes
Fundamentos y Objetivos Tapestry
Trminos bsicos

Page: Las aplicaciones consisten en una


colleccin de pages univocamente nombradas.
Cada pgina tiene un template y contiene otros
componentes.
Template: Un HTML template para una pgina
(o un componente). En Tapestry, un template
contiene ordinario HTML markup, con ciertos
tags marcados con con un atributo especial que
los identifica como componentes.
Fundamentos y Objetivos Tapestry
Trminos bsicos

Componente: Es un objeto reutilizabale que es utilizado


como partes de una pgina. Los componentes generan
HTML cuando la pgina es renderizada y tambin,
participa cuando un link o formulario en la pgina
renderizada es disparado. Los componentes puede ser
utilizados para construir nuevos componentes.
Parametros: Los componentes tiene parametros que
enlazan las propiedades del componente a las
propiedades de la pgina (u objetos de dominio
accesible desde la pgina).
Fundamentos y Objetivos Tapestry
Trminos bsicos
Agenda

Fundamentos y Objetivos Tapestry

Model-View-Controller Pattern

Clases e interfaces esenciales del framework

Ejemplo Hola Mundo. Despliegue en Tomcat


Web Container
Model-View-Controller Pattern
Es un patrn de diseo de arquitectura.

Es el ms utilizado en el desarrollo de
aplicaciones que contengan GUI (Graphic
User Interface)

Algunos frameworks: Spring MVC, Struts,


WebWork
Model-View-Controller Pattern
Esta compuesto por tres componentes:

Model (modelo)

View (vista)

Controller (controlador)
Model-View-Controller Pattern
Model

Contiene objetos de domino, que


representan una especfica lgica de
negocio. Ejemplos: Cliente, Orden o
Producto (es una aplicacin de
Facturacin).
El modelo debe ser completamente
independiente de la GUI.
Model-View-Controller Pattern
View

Es responsable de la presentacin de la
informacin obtenida del Model en un
formato apropiado para la aplicacin.
(render page, grafico de barras, etc).
Model-View-Controller Pattern
Controller: Tiene dos funciones:

Es el puente entre el Model y la View, leyendo


informacin del modelo y proporcionndosela a
la Vista.

Es el responsable de interpretar la entrada del


usuario y actualizar el Model en respuesta. En
una aplicacin wen, el Controller atender
solicitudes (incluyendo form submissions)
Model-View-Controller Pattern
Colaboracin entre componentes
Model-View-Controller Pattern
Colaboracin entre componentes
Model-View-Controller Pattern
MVC Tapestry
Agenda

Fundamentos y Objetivos Tapestry

Model-View-Controller Pattern

Clases e interfaces esenciales del framework

Ejemplo Hola Mundo. Despliegue en Tomcat


Web Container
Clases e interfaces esenciales del framework

El Framework contiene alrededor de 400


clases e interfaces
Dos interfaces claves:
IComponent: define los servicios y
responsabilidades bsicas que debe
implementar cualquier componente

IPage: define los servicios y responsabilidades


bsicas que debe implementar cualquier pgina
Clases e interfaces esenciales del framework
Clases e interfaces esenciales del framework

Tres interfaces tiles:

IRequestCycle: se utiliza para guardar informacin sobre la


corriente solicitud. (HttpServletRequest,HttpSession y
HttpServletResponse)

IMarkupWriter: Un markup writer es utilizado para producir HTML


cuando se esta renderizando la pgina de respuesta. Tiene un rol
smil al java.oi.PrintWriter, pero incluye mtodos tiles adicionales
para producir elementos y atributos estilo XML.

IEngine: Es un objeto central que tiene diversas responsabilidades.


Principalmente, el engine es el responsable de mantener el server-
side state, pero tambin acta de gateway a un nmero de
subsistemas usados internamente por Tapestry
Agenda

Fundamentos y Objetivos Tapestry

Model-View-Controller Pattern

Clases e interfaces esenciales del framework

Ejemplo Hola Mundo. Despliegue en Tomcat


Web Container
Clases e interfaces esenciales del framework

Herramientas

JDK 1.5.0_09
Apache Tomcat 5.5.17
IDE Eclipse 3.2.1
Tomcat Eclipse Plugin SysDeo
Ejemplo Hola Mundo
Estructura Aplicacin
Ejemplo Hola Mundo
web.xml

<servlet>
<servlet-name>app</servlet-name>
<servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/app</url-pattern>
</servlet-mapping>
Ejemplo Hola Mundo
Home.html
<html>
<head>
<title>Y3K-it Solution Builder - Tapestry course</title>
</head>
<body>

<!-- HEADER -->


<table>
<tr>
<td width="50%"><img src="images/y3k-it.jpg" /></td>
<td width="70%"><td width="50%"><img src="images/tca.jpg" /></td>
</tr>
</table>
Ejemplo Hola Mundo
Home.html
<h1>Tapestry course</h1>

<p>
The current data and time is:
<strong><span jwcid="@Insert" value="ognl:new java.util.Date()">June 26
2005</span></strong>
</p>

<p>
<a href="#" jwcid="@PageLink" page="Home">refresh</a>
</p>

</body>
</html>
Ejemplo Hola Mundo
app.application
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
"-//Apache Software Foundation//Tapestry Specification 4.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">

<application>

</application>
Y3K-it
Solution Builders
Franklin Roosvelt 5814
Villa Urquiza - Capital Federal

Tel : +54 (011) 4100-0251

www.y3k-it.com
info@y3k-it.com

Вам также может понравиться