Download contenedor - Profesores

Document related concepts
no text concepts found
Transcript
DEPARTAMENTO DE SISTEMAS
Contenedores y
JavaServer Faces
1
Agenda
DEPARTAMENTO DE SISTEMAS
• 
• 
• 
• 
Introducción
Contenedores
Contenedor Glassflish
Tecnología JavaServer Faces
o 
o 
o 
o 
o 
o 
Definición JSF
Navegación
Backing Beans
JSF Tags
Conversión y Validación
Manejo de Eventos
2
Introducción
DEPARTAMENTO DE SISTEMAS
•  La arquitectura JEE es independiente de la
plataforma y utiliza componentes reutilizables
•  El servidor JEE provee los servicios en la forma de
un contenedor (container) para cada tipo de
componente.
•  El desarrollador se concentra en resolver
problemas del lógica de negocio.
3
Introducción
DEPARTAMENTO DE SISTEMAS
Sin servidor de aplicaciones
Con servidor de aplicaciones
Resolver problemas a nivel de:
Provee servicios comunes como:
- Transacciones
- Persistencia
- Distribución de objetos
- Administración de conexiones
- Redundancia
- Construcción frameworks propios
- Comprar soluciones propietarias (limitaciones)
-  Persistencia
-  Transacciones
-  Distribución de Objetos
-  Administración de conexiones
-  Los proveedores implementan los estándares
-  Configuración centralizada
-  Permiten centrarse en los problemas del negocio
-  Sus servicios se utilizan a través de APIs estándares
-  Desarrollar soluciones independiente de la plataforma
-  Mayor nivel de integración
4
Introducción
DEPARTAMENTO DE SISTEMAS
•  Servicios Contenedor:
o 
Interfaz entre los componentes y la plataforma que los
soporta
o 
Desplegar aplicaciones ensambladas, lo cual implica
configurar el contenedor para la aplicación JEE
o 
Las configuraciones del contenedor incluyen la
seguridad, administración de transacciones, persistencia,
servicios de jndi y conectividad remota
o 
Su funcionalidad es definida por la plataforma JEE y es
diferente para cada tipo de componente
5
Introducción
DEPARTAMENTO DE SISTEMAS
o 
Seguridad: permite configurar los componentes web o
EJB para que solo sean utilizados por usuarios
autorizados y autenticados mediante JAAS
o 
Transacciones (JTA): permite el manejo de transacciones
distribuidas que están en múltiples recursos como una
unidad (especificación JSR 907).
o 
Búsqueda (JNDI lookup): interfaz unificada para acceso a
servicios de nombres y directorios.
o 
El modelo de conectividad remota JEE administra las
comunicaciones a bajo nivel entre clientes y beans
empresariales de manera transparente.
6
Introducción
DEPARTAMENTO DE SISTEMAS
•  Tipos de contenedores:
o 
o 
o 
Contenedor Web
Contenedor de aplicación cliente
Contenedor EJB
7
Contenedores
DEPARTAMENTO DE SISTEMAS
•  Contenedor WEB
Es una interfaz entre los componentes Web (servlets, páginas
JavaServer Faces o Páginas JSP) y el servidor web. En
tiempo de ejecución ofrece los servicios requeridos por los
componente web.
o  Servicios:
 
 
 
 
 
o 
Recepción de solicitudes
Seguridad
Concurrencia
Administración del ciclo de vida de componentes web
Permite acceso de los componentes web a las APIs tales
como transacciones.
Ejemplos: Tomcat, Jetty.
8
Contenedores
DEPARTAMENTO DE SISTEMAS
•  Contenedor EJB (Enterprise JavaBeans)
Es la interfaz entre los beans empresariales (proveen la lógica
del negocio) y el servidor JEE.
o  Servicios
 
 
 
 
o 
Gestiona la ejecución (ciclo de vida) de los EJBs
Se ejecuta sobre un servidor JEE
Soporta los componentes que implementan la lógica de
negocio
Ofrece servicios de control de acceso y seguridad, control de
transacciones y ejecución concurrente entre otras.
Ejemplos : JBoss, Glassfish
9
Contenedores
DEPARTAMENTO DE SISTEMAS
•  Contenedor Aplicaciones Cliente
Es la interfaz entre las aplicaciones clientes JEE las cuales
son aplicaciones especiales Java SE que usan los
componentes de servidor JEE.
o 
Servicios:
 
 
Se ejecutan en la máquina del cliente
Es el gateway entre la aplicación cliente y los componentes
del servidor JEE que usa el cliente.
10
Sun GlassFishTM Enterprise Server
DEPARTAMENTO DE SISTEMAS
•  Sun GlassFishTM Enterprise Server
Servidor de aplicaciones que implementa las
especificaciones Java EE, construida por una
comunidad open source (Sun, Ericsson, Oracle
entre otros). Permite crear, ensamblar, desplegar y
depurar código para aplicaciones empresariales.
11
Sun GlassFishTM Enterprise Server
DEPARTAMENTO DE SISTEMAS
•  Características:
o 
o 
o 
Soporta tecnologías: JSP, JSF, Servlets, EJBs, Java API
para Servicios Web (JAX-WS), Arquitectura Java para
Enlaces XML (JAXB), Java Persistence API.
Código abierto (GPL)
Certificado con estándares Sun JAVA System Application
Server 9 PE
12
Sun GlassFishTM Enterprise Server
DEPARTAMENTO DE SISTEMAS
•  Versión 2 (Java EE 5)
o 
o 
o 
o 
o 
o 
o 
o 
o 
o 
o 
WS stack
Rendimiento
Balanceo de carga
Clustering
Proyecto metro : integración entre servicios Web alojados
en tecnología Java con servicios de windows
ESB
Java Business Integration (JBI)
Integración con IDE Netbeans
Administración centralizada
Soporte de scripting
Framework de testing unificado
13
Sun GlassFishTM Enterprise Server
DEPARTAMENTO DE SISTEMAS
•  Versión 3
o 
o 
o 
o 
o 
o 
Basado en arquitectura modular OSGi (Open Services
Gateway initiative) con capacidad para trabajar
plataforma Java EE 6 release
Soporta JSF 2.0
JAX-RS 1.0 es suportada para construir servicios WEB
RESTful.
Soporte JRuby
Maneja extensibilidad y modularidad
Soporta: aplicaciones Java EE, RoR (Ruby on Rails),
Phobos, Grails
Comparación entre versiones https://glassfish.dev.java.net/public/comparing_v2_and_v3.html
14
Arquitectura Glassfish V.3
DEPARTAMENTO DE SISTEMAS
15
Comparación Contenedores JEE
DEPARTAMENTO DE SISTEMAS
Tomado de http://weblogs.java.net/blog/jdcampbell/archive/2008/02/top_java_5_ee_s_1.html
Yes: La característica está disponible en el servidor
Available: La característica requiere instalaciones adicionales
Partial: la característica no está completamente soportada
16
Aplicación Web
DEPARTAMENTO DE SISTEMAS
•  Aplicación Web
Es una extensión dinámica de un servidor web o de
aplicación.
Consta de componentes web, archivos estáticos
como imágenes, librerías y clases utilitarias.
Hay dos tipos de aplicaciones web:
o 
o 
Orientadas a Presentación: genera paginas web
interactivas, contiene varios tipos de leguaje como HTML,
XML.
Orientadas a Servicio: Implementa los endpoint de un
servicio web.
17
Aplicación Web
DEPARTAMENTO DE SISTEMAS
•  Ciclo de Vida de una Aplicación Web.
o 
o 
o 
o 
o 
o 
Desarrollar el código de los componentes web
Desarrollar el descriptor del componente web ( Un
descriptor es un archivo en formato xml que contiene la
información de configuración para el despliegue de la
aplicación web)
Compilar los componentes de la aplicación web junto con
las clases utilitarias referenciadas por los componentes
Empaquetar la aplicación para ser desplegada (opcional)
Desplegar la aplicación en un contenedor web
Acceder al url que referencia en la aplicación web, el
puerto de referencia es definido en el contenedor web
18
Aplicación Web
DEPARTAMENTO DE SISTEMAS
•  Módulo Web
Un modulo web JEE corresponde a una aplicación web definida en la especificación de
Java Servlet . Es la unidad de recursos web (componentes web, recursos estáticos,
librerías) que puede ser desplegada. Un modulo Web tiene la siguiente estructura:
Descriptor de despliegue
aplicación web
Archivos JAR de librerías
utilizadas por las clases del
lado del servidor
Clases de lado del
servidor: servlets, clases
de utilidades, javaBeans.
Un directorio que contiene
los archivos tag,
implementaciones de
librerías tag.
.
Tomado de http://docs.sun.com/app/docs/doc/819-3669/bnadr?a=view
19
Aplicación Web
DEPARTAMENTO DE SISTEMAS
•  Tecnologías Java para Aplicaciones WEB
Tomado de http://docs.sun.com/app/docs/doc/819-3669/bnadr?a=view
20
Tecnología JSF
DEPARTAMENTO DE SISTEMAS
•  “La tecnología Java Server Faces (JSF) es
un marco de trabajo de interfaces de
usuario del lado de servidor para
aplicaciones Web basadas en tecnología
Java”. (Sun Microsystems) – Estándar de
Java (JSR-127)
21
Tecnología JSF
DEPARTAMENTO DE SISTEMAS
•  Beneficios
o 
o 
o 
o 
o 
o 
Separación entre el comportamiento y la presentación de una
aplicación web, facilitando el mantenimiento
Manejo de elementos UI como objetos con estado en el
servidor.
Contienen conceptos a nivel de capa web y componentes UI
sin limitarlo a tecnologías de scripting particular o lenguaje
markup
Permite la separación clara de roles en desarrollo
Estandarización: Los más grandes vendedores de
herramientas de desarrollo colaboran con su mantenimiento.
Aunque la tecnología JSF incluye una biblioteca de etiquetas
JSP personalizadas para representar los componentes en
una página JSP, el API de la tecnología JSF son capas
directamente encima de la API Servlet.
22
Tecnología JSF
DEPARTAMENTO DE SISTEMAS
•  Qué ofrece el framework JSF
o 
o 
o 
Un conjunto de componentes web prefabricados
Un modelo de programación orientado a
eventos
Un modelo de componentes que permiten a
terceros y desarrolladores crear nuevos
componentes
23
Tecnología JSF
DEPARTAMENTO DE SISTEMAS
Funcionamiento JavaServer Faces
24
Tomado de: http://java.sun.com/javaee/5/docs/tutorial/doc/
Tecnología JSF
DEPARTAMENTO DE SISTEMAS
• 
25
Partes de una aplicación JSF
o 
Un conjunto de páginas JSP
o 
Un conjunto de componentes JavaBeans llamados backing
beans, los cuales definen las propiedades y funciones para
los componentes UI sobre una pagina JSP
o 
Archivos de configuración de la aplicación, los cuales definen
las reglas de navegación y configuración de beans u otros
objetos como componentes definidos por el cliente
o 
Un archivo descriptor de despliegue (web.xml)
o 
Conjunto de objetos cliente creados por el desarrollador de la
aplicación como: componentes, validadores, conversores o
listeners.
o 
Un conjunto de tags del cliente para representar los objetos
del cliente sobre la página
Tecnología JSF
DEPARTAMENTO DE SISTEMAS
Ciclo de vida de una página JSF (l)
26
Tecnología JSF
DEPARTAMENTO DE SISTEMAS
• 
Las aplicaciones JSF deben acoplarse a las especificaciones
Servlet v.2.3 y JavaServer Pages v.1.2, estas
especificaciones son empaquetadas en archivos WAR, los
cuales conforman los requerimientos para ejecutar las
aplicaciones en un contenedor
• 
Un archivo WAR debe contener:
o 
o 
o 
o 
Un descriptor de despliegue web.xml
Un conjunto de archivos JAR que contienen las clases
Un conjunto de clases de la aplicación, paginas JSF y otros
recursos requeridos
Un archivo de configuración delos recursos de la aplicación
27
Tecnología JSF
DEPARTAMENTO DE SISTEMAS
• 
La estructura de directorio de un archivo WAR es:
• 
En Netbeans la estructura de directorios para una aplicación
Web es:
28
Tecnología JSF
DEPARTAMENTO DE SISTEMAS
• 
Pasos en el proceso de desarrollo:
o 
Mapear la instancia del FacesServlet
o 
Crear de las páginas que utilizan los componentes UI y los
core tags.
o 
Definir de página de navegación en el archivo de
configuración de la aplicación.
o 
Desarrollar de backing beans
o 
Adicionar en el archivo de configuración de la aplicación
los managed bean.
29
Definición Páginas
DEPARTAMENTO DE SISTEMAS
• 
Mapear la instancia del FacesServlet
Todas las aplicaciones JSF deben incluir un mapeo a la instancia
de FacesServlet en sus descriptores de despliegue, para
identificar las paginas que deben ser administradas en el ciclo
de vida de JavaServer Faces. Esta instancia acepta las
peticiones, administra el ciclo de vida de la aplicación e inicializa
los recursos requeridos por JSF. Ejemplo tomado del descriptor
WEB-INF/web.xml, de la aplicación guessNumber (http://
docs.sun.com/app/docs/doc/819-3669/bnaph?a=view).
30
Definición Páginas
DEPARTAMENTO DE SISTEMAS
•  Crear las páginas
o 
Una página JSF tiene los tags usuales de HTML y HEAD
o 
Se deben declarar los tags de las librerías para acceder a
los componentes del core y de html
1. 
Librería de etiquetas personalizadas para componentes UI
de HTML identificado con el prefijo h
3. 
Librería de etiquetas personalizadas para representar
manejadores de eventos, validadores, y conversores.
4. 
También es posible utilizar la librería de apache
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>
31
Definición Páginas
DEPARTAMENTO DE SISTEMAS
o 
Las páginas JSF son representadas con un árbol de
componentes definido como view. El tag view representa
la raíz del árbol. Se puede utilizar el tag subview para
incluir páginas entre otras.
o 
Todos los componentes deben estar definidos allí y está
definido en la librería core. El tag form representa un
componente de entrada. Todos los componentes
editables (cajas de texto, botones) se deben ubicar entre
el tag form
32
Definición Páginas
DEPARTAMENTO DE SISTEMAS
•  Componentes UI en paginas JSF.
o 
Etiquetas. El tag output Text representa las
etiquetas (label). En el ejemplo el valor de la
etiqueta está siendo consultado del método get
del propiedad minimun y maximun del Backing
Bean UserNumberBean
33
Definición Páginas
DEPARTAMENTO DE SISTEMAS
Imagen: define ruta de la imagen y id
Botón: define id, acción ( especifica la
propiedad de salida que ayuda al
mecanismo de navegación a definir
cual es la página siguiente) y valor
Caja de texto: define etiqueta, propiedad de
Backing Bean que recibe valor, mensaje de
error. Se hace una validación de rango con
“validateLongRange”
34
Definición Páginas
DEPARTAMENTO DE SISTEMAS
Ejemplo de página JSF
35
Navegación
DEPARTAMENTO DE SISTEMAS
• 
El modelo de navegación de JavaServer Faces facilita definir la
navegación entre páginas y mejorar el procesamiento para elegir la
secuencia en la cual las páginas son cargadas.
• 
La navegación es definida con un conjunto de reglas en el archivo
faces-congif.xml, para seleccionar la página que se debe desplegar,
a partir de un evento generado por un componente (botón, link).
• 
Tipos de navegación
o  Navegación Estática
o  Navegación Dinámica
36
Navegación
DEPARTAMENTO DE SISTEMAS
•  Navegación Estática
<h:commandButton label="Login" action="login"/>
<navigation-rule>
<from-view-id>/index.jsp</from-view-id>
<navigation-case>
<from-outcome>login</from-outcome>
<to-view-id>/welcome.jsp</to-view-id>
</navigation-case>
</navigation-rule>
37
Navegación
DEPARTAMENTO DE SISTEMAS
•  Navegación Dinámica
o 
La navegación depende de cada usuario y de
datos particulares
<h:commandButton label="Login" action="#{loginController.verifyUSer}"/>
String verifyUser() {
if (...)
return "success"
else
return "failure"
}
38
Navegación
DEPARTAMENTO DE SISTEMAS
• 
Definen la secuencia en que son cargadas las páginas
de una aplicación.
• 
Se deben registrar en el archivo de configuración
faces – config.xml
39
Navegación
DEPARTAMENTO DE SISTEMAS
• 
La navegación se define en el archivo faces-config.xml
• 
Si va a agregar un nuevo archivo de navegación, se debe
incluir en la lista de archivos del web.xml
• 
En el faces-config.xml de cada módulo se deben especificar
las clases que implementan los beans y el alcance de cada
uno de estos objetos
40
Navegación
DEPARTAMENTO DE SISTEMAS
• 
Cada vez que se define un action sobre un bean, este debe
retornar un String con el que se especifica la regla de
navegación a seguir.
• 
En este ejemplo el caso “success” es resultado del llamado al
método createRole del RoleBean.
41
Navegación
DEPARTAMENTO DE SISTEMAS
• 
Menú de navegación
• 
incluir dentro del archivo common/jsp/menu.jsp el
nuevo elemento
42
Navegación
DEPARTAMENTO DE SISTEMAS
• 
El faces-config.xml debe incluir las reglas de
transición de los estados del menú
43
Backing Beans
DEPARTAMENTO DE SISTEMAS
•  Clases JAVA (Java Beans)
•  Su propósito es separar los componentes UI de
los objetos que ejecutan el procesamiento y
mantienen los datos
•  Facilitan la comunicación entre los beans reales de
la aplicación y la UI.
•  Responsabilidades
o 
Interactúan con el modelo
o 
Escuchan eventos de la vista
o 
Dan respuesta a las solicitudes
44
Backing Beans
DEPARTAMENTO DE SISTEMAS
• 
Getters y setters para sus propiedades
• 
Métodos de acción
o 
eventos de la capa web implementados en métodos de los
beans.
o 
actions
o 
 
Ejecutan acciones sobre el modelo y dejan los resultados
en los atributos del bean
 
siempre termina con una regla de navegación (por lo que
se entiende que un action tiene tipo de retorno String)
action listeners
 
Método para poblar información antes de cargar un jsp
 
recibe un evento como parámetro y no retorna nada
Uso de un Web Bean en un JSP (para visualizar un attr)
< ……… value =“#{bookListBean.books}”/>
45
Backing Beans
DEPARTAMENTO DE SISTEMAS
•  El Backing Bean define propiedades y métodos que
son asociados con los componentes UI usados en
la página. En el ejemplo el valor de entrada del
componente se mantendrá en la propiedad
useNumber del Backing Bean UserNumberBean.
<h:inputText id="userNo" label="User Number"
value="#{UserNumberBean.userNumber}">
...
</h:inputText>
46
DEPARTAMENTO DE SISTEMAS
47
Backing Beans
Backing Beans
DEPARTAMENTO DE SISTEMAS
48
Backing Beans
DEPARTAMENTO DE SISTEMAS
•  Configuración de un Bean
JavaServer Faces soporta la administración de
bean y permite realizar:
o  Configurar beans
o  Inicializar las propiedades de los bean con
valores determinados
o  Mantener los beans en un ámbito
o  Exponer los beans para que puedan ser
accedidos.
49
Backing Beans
DEPARTAMENTO DE SISTEMAS
•  Los beans se configuran en el archivo facesconfig.xml. Este archivo es procesado cuando la
aplicación inicia, si una página hace referencia a un
bean, la implementación JavaServer Faces inicializa
de acuerdo a su configuración en este archivo.
•  Los beans se pueden crear usando elementos
managed-bean, los cuales representan una instancia
de una clase bean que debe existir en la aplicación.
En tiempo de ejecución JSF implementa procesos
para el managed-bean.
50
Backing Beans
DEPARTAMENTO DE SISTEMAS
•  Ejemplo Declaración de Managed-Bean
<managed-bean>
<managed-bean-name>UserNumberBean</managed-beanname>
<managed-bean-class>guessNumber.UserNumberBean</
managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>minimum</property-name>
<property-class>long</property-class>
<value>0</value>
</managed-property>
</managed-bean>
51
Backing Beans
DEPARTAMENTO DE SISTEMAS
• 
Cada managed-bean contiene las siguientes propiedades:
o 
o 
o 
• 
Managed-bean-name: es único y se mantiene en el ámbito de la
aplicación. Este nombre debe coincidir con el valor que se utiliza
en las páginas para invocar el bean
Managed-bean-class: define el nombre completo de la clase
componente JavaBeans utilizados para crear una instancia del
bean
Managed-bean-scope: define el ámbito en el cual el bean será
almacenado (request, session, application, none)
El managed-bean contiene el elemento property-name, la cual
debe coincidir con el nombre de la propiedad correspondiente
en el bean. El valor que se define debe ser el mismo de la
propiedad.
52
JSF Tags
DEPARTAMENTO DE SISTEMAS
•  Los tags están definidos en dos librerías principales
o  Core
o  HTML
•  Requieren importación
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
53
JSF Tags
DEPARTAMENTO DE SISTEMAS
•  Algunos JSF Core Tags
o 
o 
o 
o 
o 
o 
o 
o 
o 
o 
o 
view
subview
Attribute
param
facet
actionListener
valueChangeListener
converter
validator
validateLength
selectitem
54
JSF Tags
DEPARTAMENTO DE SISTEMAS
<h:selectOneMenu>
<h:selectOneRadio>
<h:selectManyListbox>
Volver
55
<h:selectOneListbox>
<h:selectManyMenu>
<h:selectManyCheckboxlist>
Conversión y Validación
DEPARTAMENTO DE SISTEMAS
•  JSF ofrece soporte para conversión y validación
de datos
o 
Conversión de números y fechas
 
 
o 
ConvertNumber
convertDateTime
Manejo de errores de conversión
 
<h:message>
<h:inputText value="#{payment.date}">
<f:convertDateTime pattern="mm/yyyy"/>
</h:inputText>
<h:outputText value="#{payment.amount}">
<f:convertNumber type="currency"
</h:outputText>
56
Ejemplos de conversores
DEPARTAMENTO DE SISTEMAS
<h:outputText value="#{user.dateOfBirth}">
<f:convertDateTime type="date" dateStyle="short"/>
</h:outputText>
*** Los conversores tienen encuenta los conceptos de
internacionalización y localización.
57
Conversión y Validación
DEPARTAMENTO DE SISTEMAS
•  Validaciones
o 
o 
o 
Longitud de cadenas
Rangos de números
Valores requeridos
<h:inputText id="card" value="#{payment.card}">
<f:validateLength minimum="13"
</h:inputText>
58
Manejo de Eventos
DEPARTAMENTO DE SISTEMAS
•  Aplicaciones Web
o 
Deben reaccionar a eventos de usuario
 
 
o 
Seleccionar elementos de un menú
Click en un botón
JSF Soporte tres tipos de eventos
 
Cambio de valores
 
 
Acciones
 
 
Disparados por componentes input (h:inputText)
Disparados por componentes command
(h:commandButton)
Fases (Phase)
 
Disparados dentro del ciclo de vida de la JSF
59
Manejo de Eventos
DEPARTAMENTO DE SISTEMAS
•  Eventos por Cambio de Valor
<h:selectOneMenu value="{form.country}" onchange="submit()">
valueChangeListener="{form.countryChanged}"
<f:selectItems value="{form.countryNames}">
</h:selectOneMenu>
60
Manejo de Eventos
DEPARTAMENTO DE SISTEMAS
•  Eventos de Acción
<h:commandButton image="pan.jpg">
actionListener="#{tienda.listen}"
action="#{tienda.act}"
</h:commandButton>
------public class Tienda {
private String outcome;
....
public void listen (ActionEvent e) {
FacesContext context = FacesContext.getCurrentInstance();
String clienteId = e.getComponent().getClienteId(context);
....
if(...)
outcome = "success";
}
public String act () {
return outcome;
}
}
61
Manejo de Eventos
DEPARTAMENTO DE SISTEMAS
62
Ejemplo:
DEPARTAMENTO DE SISTEMAS
63
Agenda
DEPARTAMENTO DE SISTEMAS
 
 
Conceptos JSP
Desarrollo aplicaciones Web
64
Proceso de Desarrollo
DEPARTAMENTO DE SISTEMAS
 
Creación del prototipo en html
  Definición de la forma en que interactuarán los usuarios con el
requerimiento
 
Diseño
  Identificación de los estados en los que el usuario interactúa
con el sistema
 
Implementación
  Creación de las páginas JSP e implementación de los web
beans
65
Creación del prototipo en html
DEPARTAMENTO DE SISTEMAS
 
Crear páginas html que muestren cómo el usuario va a visualizar y
a interactuar con un requerimiento
 
Identificar estilos, formas, imágenes, íconos y convenciones
66
Diseño
DEPARTAMENTO DE SISTEMAS
 
Diseñar JSPs y Web Beans que contienen la
información que se va a desplegar en cada jsp.
 
Los Web Beans contienen los métodos con los cuales
se van a hacer las acciones sobre el sistema.
 
 
67
Un Bean por cada página de presentación de cada
componente
Un Bean que contiene el listado de modelBO.
Diseño: Diagrama de Estados
DEPARTAMENTO DE SISTEMAS
 
Todos los diagramas deben empezar por lo menos con un action
  Los actions pueden ser llamados desde el menú o desde un
botón dentro del sistema
  Si hay una acción en el Bean antes de mostrar el jsp se debe
tener un actionListener.
 
Las transiciones de los estados son el resultado de pasar de una
página a otra o interactuar con algún Bean.
 
Todos los diagramas deben finalizar en una jsp.
68
Diagrama de Estados: Ejemplos
DEPARTAMENTO DE SISTEMAS
 
Requerimientos de Listar
69
Diagrama de Estados: Ejemplos
DEPARTAMENTO DE SISTEMAS
 
Requerimientos de creación
70
Diagrama de Estados
DEPARTAMENTO DE SISTEMAS
 
Si se pasa a una jsp con una acción de navegación se
debe usar la palabra action al final.
 
Si se pasa a una jsp con el resultado de una acción
de un Bean se debe usar la palabra “success”.
 
Al pasar a un Bean se debe usar el método/
propiedad que se va a llamar.
71
Guía de Implementación
DEPARTAMENTO DE SISTEMAS
 
Implementar WEB Delegates
 
 
Implementar Web Beans
 
 
Intermedian relación entre Web Beans y Beans de Sesión
Implementar getters y setters de sus atributos (incluyendo los del
BO ), los action y action listeners
Ajustar Archivo de configuración
 
Declarar la nueva navegación y los web beans
 
Adicionar el nuevo requerimiento al menú
 
Implementar JSPs
 
 
A partir del prototipo adicionar los tags de JSF y los
componentes adicionales
Ajustes al packaging
 
Los nuevos archivos y módulos deben quedar incluidos dentro
del war que se construye
72
DEPARTAMENTO DE SISTEMAS
Ciclo de vida de una página JSF
2. Posibles escenarios del ciclo de vida
A. 
Petición No-Faces genera una Respuesta Faces:
Enlace de una página HTML que abre una página que contiene
componentes JSF
B. 
Petición Faces genera una Respuesta No-Faces
Evitar la fase de “renderizar” la Respuesta
C. 
Una Petición Faces genera una Respuesta Faces
73
Página Inicial
DEPARTAMENTO DE SISTEMAS
listBooks.jsp
74
Eliminar
DEPARTAMENTO DE SISTEMAS
75
DEPARTAMENTO DE SISTEMAS
Ejemplo
76
DEPARTAMENTO DE SISTEMAS
Ejemplo
77
Ejemplo
DEPARTAMENTO DE SISTEMAS
78
DEPARTAMENTO DE SISTEMAS
Ejemplo
79
Ejemplo
DEPARTAMENTO DE SISTEMAS
80
Ejercicio
DEPARTAMENTO DE SISTEMAS
 
Construya el Diagrama de estado para el
proyecto
81
Material
DEPARTAMENTO DE SISTEMAS
• 
• 
Este material fue preparado por
•  Nicolás López
•  Pilar Villamil
Este material fue revisado y actualizado por
•  Darío Correal
•  Yeimi Peña
82
Referencias
DEPARTAMENTO DE SISTEMAS
Presentación JavaServer Faces. Betsy Lanchero, 2006-2
The Java EE 5 Tutorial . Sun. Junio 16, 2006
  Bergsten, Hans. JavaServer Faces. O’Reilly. 2004
  Horstmann, Cay. Core JavaServer Faces. Prentice Hall. 2004.
  http://www.coreservlets.com
  http://java.sun.com/j2ee/javaserverfaces
  JSF Web Steps – QualDev Group
  http://chie.uniandes.edu.co/~changeset/wiki/doku.php?
id=development:resources:tutorials:development:jsfwebsteps
  http://co.sun.com/practice/software/glassfish/landing/que_es.html
  http://docs.sun.com/app/docs/doc/820-7695/fvxzc?a=browse
  http://docs.sun.com/app/docs/doc/819-3669/bnadr?a=view
 
 
83