contenedores y jsf2
Post on 06-Apr-2018
225 Views
Preview:
TRANSCRIPT
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 1/53
DEPARTAMENTO DE SISTEMAS
Contenedores y
JavaServer Faces
1
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 2/53
DEPARTAMENTO DE SISTEMAS
2
Introducción
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 3/53
DEPARTAMENTO DE SISTEMAS
Introducción
• Java Server Faces
o Framework Java para la construcción de
interfaces de usuario para aplicaciones Webo La especificación fue creada por:
Sun, IBM, Oracle, Borland, BEA
o Java Specification Request (JSR) 127
o 2001
3
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 4/53
DEPARTAMENTO DE SISTEMAS
Introducción
• Basado en los siguientes principios para
facilitar el desarrollo Web
o Centrado en componentes
o Independencia del cliente
o Simplificación del acceso y manejo de datos
o Basado en patrones arquitecturales para eldesarrollo Web
4
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 5/53
DEPARTAMENTO DE SISTEMAS
Introducción
• Objetivos de diseño de la JSR 127
o Crear un marco estándar para UI basado en
componentes
o Crear un conjunto liviano de clases paramanejar componentes, estado de loscomponentes y eventos de entrada
o Proveer un modelo basado en JavaBeans para
comunicar eventos de los controles cliente conaplicaciones del lado servidor
5
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 6/53
DEPARTAMENTO DE SISTEMAS
6Tomado de [1] – Java Server Faces 2.0 – The complete reference
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 7/53
DEPARTAMENTO DE SISTEMAS
7
Ciclo de Vida de una JSF
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 8/53
DEPARTAMENTO DE SISTEMAS
JSF
• El ciclo de vida de una JSF
o Evento de entrada
Request de una xhtml
Evento “action” en un componente UI
o JSF Request processing lifecycle
Crear o restaurar la vista
Aplicar valores de usuario
Validar que los valores son válidos
Actualizar el modelo con valores válidos
Localizar una nueva vista de ser necesario
Desplegar la vista
8
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 9/53
DEPARTAMENTO DE SISTEMAS
JSF
• 1- Crear o restaurar la vista
o La vista internamente es representada como un
árbol de componentes
o Representación espejo de la vista del cliente
o Si la vista es nueva se crea y se guarda en un
contenedor llamado “FacesContext”
9
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 10/53
DEPARTAMENTO DE SISTEMAS
JSF
10Tomado de [1] – Java Server Faces 2.0 – The complete reference
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 11/53
DEPARTAMENTO DE SISTEMAS
JSF
• 2- Aplicar valores “Request”
o Se procesan los valores de entrada del request
o Cada componente UI en el árbol toma los
valores enviados por el cliente
o En general se tienen dos tipos de componentes
Contenedores de valores
Text field
Check box
Label
No contenedores de valores
Botón
Link
11
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 12/53
DEPARTAMENTO DE SISTEMAS
JSF
12Tomado de [1] – Java Server Faces 2.0 – The complete reference
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 13/53
DEPARTAMENTO DE SISTEMAS
JSF
• 3- Procesar Validaciones
o Se realiza la conversión y validación de los
datos
o Si un componente falla en la validación pone supropiedad “valid” en “false”
o Un mensaje “FacesMessage” es encolado en el
“FacesContext”
13
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 14/53
DEPARTAMENTO DE SISTEMAS
JSF
14Tomado de [1] – Java Server Faces 2.0 – The complete reference
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 15/53
DEPARTAMENTO DE SISTEMAS
JSF
• 4- Actualizar los valores del modelo
o Si los datos pasan la validación y conversión,
los datos son asignados a los componentes
o La actualización se realiza sobre el modelo, es
decir sobre los ManagedBeans
15
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 16/53
DEPARTAMENTO DE SISTEMAS
JSF
16Tomado de [1] – Java Server Faces 2.0 – The complete reference
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 17/53
DEPARTAMENTO DE SISTEMAS
JSF
• 5- Invocación de aplicaciones
o Asociado a los componentes UI que no tienen
datos
o El componente se convierte en fuente de un
evento para la invocación de una aplicación ocódigo
17
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 18/53
DEPARTAMENTO DE SISTEMAS
JSF
18Tomado de [1] – Java Server Faces 2.0 – The complete reference
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 19/53
DEPARTAMENTO DE SISTEMAS
JSF
• 6- Desplegar Respuesta
o Ultima actividad en el ciclo de respuesta
o Se ejecuta un llamado en cascada a todos los
componentes del árbol
o Se almacena el estado actual del árbol para
futuros llamados
19
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 20/53
DEPARTAMENTO DE SISTEMAS
JSF
20Tomado de [1] – Java Server Faces 2.0 – The complete reference
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 21/53
DEPARTAMENTO DE SISTEMAS
21
Plantillas
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 22/53
DEPARTAMENTO DE SISTEMAS
Facelets
• Representan un mecanismo de plantillas del
lado servidor
• Promueven la reutilización
• Permiten implementar la vista mediantevarios archivos físicos
• Diseñado pensando en JSFs
• Proveen un mecanismo de declaración
utilizando XHTML• Favorece el patrón MVC
22
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 23/53
DEPARTAMENTO DE SISTEMAS
Facelets
• Existen dos elementos principales en la
utilización de Facelets
o Template
o Client
• El Cliente tiene como nombre el
identificador de la vista
o Ejemplo: inicio.xhtml
•
Un cliente puede utilizar varios templates• Mediante los facelets se promueve la
reutilización de páginas
23
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 24/53
DEPARTAMENTO DE SISTEMAS
Facelets
24
Tomado de [1] – Java Server Faces 2.0 – The complete reference
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 25/53
DEPARTAMENTO DE SISTEMAS
Facelets
25Tomado de [1] – Java Server Faces 2.0 – The complete reference
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 26/53
DEPARTAMENTO DE SISTEMAS
26
Backing Beans / Managed Beans
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 27/53
DEPARTAMENTO DE SISTEMAS
Backing Beans
• Clases JAVA (Java Beans)
• Su propósito es separar los componentes UI delos objetos que ejecutan el procesamiento ymantienen los datos
• Facilitan la comunicación entre los beans reales dela aplicación y la UI.
• Responsabilidades
o Interactúan con el modelo
o Escuchan eventos de la vista
o Dan respuesta a las solicitudes
27
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 28/53
DEPARTAMENTO DE SISTEMAS
28
• Getters y setters para sus propiedades
• Métodos de acción
o eventos de la capa web implementados en métodos de losbeans.
o actions
Ejecutan acciones sobre el modelo y dejan los resultadosen los atributos del bean
siempre termina con una regla de navegación (por lo quese entiende que un action tiene tipo de retorno String)
o 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}” />
Backing Beans
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 29/53
DEPARTAMENTO DE SISTEMAS
29
• Getters y setters para sus propiedades
• Métodos de acción
o eventos de la capa web implementados en métodos de losbeans.
o actions
Ejecutan acciones sobre el modelo y dejan los resultadosen los atributos del bean
siempre termina con una regla de navegación (por lo quese entiende que un action tiene tipo de retorno String)
o 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}” />
Backing Beans
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 30/53
DEPARTAMENTO DE SISTEMAS
Backing Beans
• 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 delcomponente se mantendrá en la propiedad
useNumber del Backing Bean UserNumberBean.
<h:inputText id="userNo" label="User Number"
value="#{UserNumberBean.userNumber}">
...</h:inputText>
30
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 31/53
DEPARTAMENTO DE SISTEMAS
31
Backing Beans
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 32/53
DEPARTAMENTO DE SISTEMAS
Backing Beans
32
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 33/53
DEPARTAMENTO DE SISTEMAS
Backing Beans
• 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.
33
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 34/53
DEPARTAMENTO DE SISTEMAS
Backing Beans
• Los beans se configuran en el archivo faces-config.xml. Este archivo es procesado cuando laaplicación inicia, si una página hace referencia a unbean, la implementación JavaServer Faces inicializade acuerdo a su configuración en este archivo.
• Los beans se pueden crear usando elementosmanaged-bean, los cuales representan una instanciade una clase bean que debe existir en la aplicación.En tiempo de ejecución JSF implementa procesospara el managed-bean.
34
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 35/53
DEPARTAMENTO DE SISTEMAS
Backing Beans
• Ejemplo Declaración de Managed-Bean<managed-bean>
<managed-bean-name>UserNumberBean</managed-bean-
name>
<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>
35
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 36/53
DEPARTAMENTO DE SISTEMAS
Backing Beans
• Cada managed-bean contiene las siguientes propiedades:
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
o Managed-bean-class: define el nombre completo de la clase
componente JavaBeans utilizados para crear una instancia del
bean
o 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 correspondienteen el bean. El valor que se define debe ser el mismo de la
propiedad.
36
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 37/53
DEPARTAMENTO DE SISTEMAS
37
JSF Expression Language (EL)
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 38/53
DEPARTAMENTO DE SISTEMAS
JSF Expression Language
• Se utilizan delimitadores
o #{
o }
•
Usoo <h:outputText value=“#{userBean.firstName}”/>
o Llamado del método getFirstName()
o <h:inputText value=“{userBean.firstName}”/>
38
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 39/53
DEPARTAMENTO DE SISTEMAS
EL
• Otros operadores
o Aritméticos
o Relación
o Lógicos
o Condicionales
39
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 40/53
DEPARTAMENTO DE SISTEMAS
40
Navegación
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 41/53
DEPARTAMENTO DE SISTEMAS
Navegación
• El modelo de navegación de JavaServer Faces facilita definir lanavegació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
41
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 42/53
DEPARTAMENTO DE SISTEMAS
Navegación
• 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>
42
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 43/53
DEPARTAMENTO DE SISTEMAS
Navegación
• 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"
elsereturn "failure"
}
43
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 44/53
DEPARTAMENTO DE SISTEMAS
• Definen la secuencia en que son cargadas las páginasde una aplicación.
• Se deben registrar en el archivo de configuración
faces – config.xml
Navegación
44
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 45/53
DEPARTAMENTO DE SISTEMAS
45
Navegación
• La navegación se define en el archivo faces-config.xml
• Si va a agregar un nuevo archivo de navegación, se debeincluir 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
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 46/53
DEPARTAMENTO DE SISTEMAS
46
Navegación
• Cada vez que se define un action sobre un bean, este deberetornar un String con el que se especifica la regla denavegación a seguir.
• En este ejemplo el caso “success” es resultado del llamado almétodo createRole del RoleBean.
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 47/53
DEPARTAMENTO DE SISTEMAS
47
Navegación
• Menú de navegación
• incluir dentro del archivo common/jsp/menu.jsp el
nuevo elemento
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 48/53
DEPARTAMENTO DE SISTEMAS
48
Navegación
• El faces-config.xml debe incluir las reglas detransición de los estados del menú
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 49/53
DEPARTAMENTO DE SISTEMAS
Navegación
• Eventos por Cambio de Valor
<h:selectOneMenu value="{form.country}" onchange="submit()">
valueChangeListener="{form.countryChanged}"
<f:selectItems value="{form.countryNames}"></h:selectOneMenu>
49
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 50/53
DEPARTAMENTO DE SISTEMAS
Navegación
• 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;
}
}
50
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 51/53
DEPARTAMENTO DE SISTEMAS
51
Navegación
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 52/53
DEPARTAMENTO DE SISTEMAS
52
Ejemplo:
8/3/2019 Contenedores y JSF2
http://slidepdf.com/reader/full/contenedores-y-jsf2 53/53
DEPARTAMENTO DE SISTEMAS
Referencias
• [1] Java Server Faces 2.0 The Complete
Reference. The complete reference. EdBurns, Chris Schalk. McGraw Hill.
53
top related