Professional Documents
Culture Documents
DEPARTAMENTO DE SISTEMAS
Introduccin
Introduccin
DEPARTAMENTO DE SISTEMAS
Framework Java para la construccin de interfaces de usuario para aplicaciones Web La especificacin fue creada por:
Introduccin
DEPARTAMENTO DE SISTEMAS
Centrado en componentes Independencia del cliente Simplificacin del acceso y manejo de datos Basado en patrones arquitecturales para el desarrollo Web
Introduccin
DEPARTAMENTO DE SISTEMAS
Crear un marco estndar para UI basado en componentes Crear un conjunto liviano de clases para manejar componentes, estado de los componentes y eventos de entrada Proveer un modelo basado en JavaBeans para comunicar eventos de los controles cliente con aplicaciones del lado servidor
DEPARTAMENTO DE SISTEMAS
DEPARTAMENTO DE SISTEMAS
JSF
DEPARTAMENTO DE SISTEMAS
Evento de entrada
Request de una xhtml Evento action en un componente UI Crear o restaurar la vista Aplicar valores de usuario Validar que los valores son vlidos Actualizar el modelo con valores vlidos Localizar una nueva vista de ser necesario Desplegar la vista
JSF
DEPARTAMENTO DE SISTEMAS
La vista internamente es representada como un rbol de componentes Representacin espejo de la vista del cliente Si la vista es nueva se crea y se guarda en un contenedor llamado FacesContext
o o
JSF
DEPARTAMENTO DE SISTEMAS
10
JSF
DEPARTAMENTO DE SISTEMAS
Se procesan los valores de entrada del request Cada componente UI en el rbol toma los valores enviados por el cliente En general se tienen dos tipos de componentes
Contenedores de valores
No contenedores de valores
JSF
DEPARTAMENTO DE SISTEMAS
12
JSF
DEPARTAMENTO DE SISTEMAS
3- Procesar Validaciones
o
Se realiza la conversin y validacin de los datos Si un componente falla en la validacin pone su propiedad valid en false Un mensaje FacesMessage es encolado en el FacesContext
13
JSF
DEPARTAMENTO DE SISTEMAS
14
JSF
DEPARTAMENTO DE SISTEMAS
Si los datos pasan la validacin y conversin, los datos son asignados a los componentes La actualizacin se realiza sobre el modelo, es decir sobre los ManagedBeans
15
JSF
DEPARTAMENTO DE SISTEMAS
16
JSF
DEPARTAMENTO DE SISTEMAS
5- Invocacin de aplicaciones
o
Asociado a los componentes UI que no tienen datos El componente se convierte en fuente de un evento para la invocacin de una aplicacin o cdigo
17
JSF
DEPARTAMENTO DE SISTEMAS
18
JSF
DEPARTAMENTO DE SISTEMAS
6- Desplegar Respuesta
o o
Ultima actividad en el ciclo de respuesta Se ejecuta un llamado en cascada a todos los componentes del rbol Se almacena el estado actual del rbol para futuros llamados
19
JSF
DEPARTAMENTO DE SISTEMAS
20
DEPARTAMENTO DE SISTEMAS
Plantillas
21
Facelets
DEPARTAMENTO DE SISTEMAS
Representan un mecanismo de plantillas del lado servidor Promueven la reutilizacin Permiten implementar la vista mediante varios archivos fsicos Diseado pensando en JSFs Proveen un mecanismo de declaracin utilizando XHTML Favorece el patrn MVC
22
Facelets
DEPARTAMENTO DE SISTEMAS
Template Client
Ejemplo: inicio.xhtml
Un cliente puede utilizar varios templates Mediante los facelets se promueve la reutilizacin de pginas
23
Facelets
DEPARTAMENTO DE SISTEMAS
24
Facelets
DEPARTAMENTO DE SISTEMAS
25
DEPARTAMENTO DE SISTEMAS
26
Backing Beans
DEPARTAMENTO DE SISTEMAS
Clases JAVA (Java Beans) Su propsito es separar los componentes UI de los objetos que ejecutan el procesamiento y mantienen los datos Facilitan la comunicacin entre los beans reales de la aplicacin y la UI. Responsabilidades
o o o
Interactan con el modelo Escuchan eventos de la vista Dan respuesta a las solicitudes
27
DEPARTAMENTO DE SISTEMAS
Backing Beans
Ejecutan acciones sobre el modelo y dejan los resultados en los atributos del bean siempre termina con una regla de navegacin (por lo que se entiende que un action tiene tipo de retorno String) Mtodo para poblar informacin antes de cargar un jsp recibe un evento como parmetro y no retorna nada
28
action listeners
Uso de un Web Bean en un JSP (para visualizar un attr) < value =#{bookListBean.books}/>
DEPARTAMENTO DE SISTEMAS
Backing Beans
Ejecutan acciones sobre el modelo y dejan los resultados en los atributos del bean siempre termina con una regla de navegacin (por lo que se entiende que un action tiene tipo de retorno String) Mtodo para poblar informacin antes de cargar un jsp recibe un evento como parmetro y no retorna nada
29
action listeners
Uso de un Web Bean en un JSP (para visualizar un attr) < value =#{bookListBean.books}/>
Backing Beans
DEPARTAMENTO DE SISTEMAS
El Backing Bean define propiedades y mtodos que son asociados con los componentes UI usados en la pgina. 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>
30
DEPARTAMENTO DE SISTEMAS
Backing Beans
31
Backing Beans
DEPARTAMENTO DE SISTEMAS
32
Backing Beans
DEPARTAMENTO DE SISTEMAS
Configuracin de un Bean
JavaServer Faces soporta la administracin 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
Backing Beans
DEPARTAMENTO DE SISTEMAS
Los beans se configuran en el archivo facesconfig.xml. Este archivo es procesado cuando la aplicacin inicia, si una pgina hace referencia a un bean, la implementacin JavaServer Faces inicializa de acuerdo a su configuracin 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 aplicacin. En tiempo de ejecucin JSF implementa procesos para el managed-bean.
34
Backing Beans
DEPARTAMENTO DE SISTEMAS
35
Backing Beans
DEPARTAMENTO DE SISTEMAS
Managed-bean-name: es nico y se mantiene en el mbito de la aplicacin. Este nombre debe coincidir con el valor que se utiliza en las pginas 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.
36
DEPARTAMENTO DE SISTEMAS
37
Se utilizan delimitadores
o o
Uso
o o o
38
EL
DEPARTAMENTO DE SISTEMAS
Otros operadores
o o o o
39
DEPARTAMENTO DE SISTEMAS
Navegacin
40
Navegacin
DEPARTAMENTO DE SISTEMAS
El modelo de navegacin de JavaServer Faces facilita definir la navegacin entre pginas y mejorar el procesamiento para elegir la secuencia en la cual las pginas son cargadas. La navegacin es definida con un conjunto de reglas en el archivo faces-congif.xml, para seleccionar la pgina que se debe desplegar, a partir de un evento generado por un componente (botn, link). Tipos de navegacin o Navegacin Esttica o Navegacin Dinmica
41
Navegacin
DEPARTAMENTO DE SISTEMAS
Navegacin Esttica
<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
Navegacin
DEPARTAMENTO DE SISTEMAS
Navegacin Dinmica
o
<h:commandButton label="Login" action="#{loginController.verifyUSer}"/> String verifyUser() { if (...) return "success" else return "failure" }
43
Navegacin
DEPARTAMENTO DE SISTEMAS
44
Navegacin
DEPARTAMENTO DE SISTEMAS
La navegacin se define en el archivo faces-config.xml Si va a agregar un nuevo archivo de navegacin, se debe incluir en la lista de archivos del web.xml En el faces-config.xml de cada mdulo se deben especificar las clases que implementan los beans y el alcance de cada uno de estos objetos
45
Navegacin
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 navegacin a seguir.
En este ejemplo el caso success es resultado del llamado al mtodo createRole del RoleBean.
46
Navegacin
DEPARTAMENTO DE SISTEMAS
Men de navegacin
47
Navegacin
DEPARTAMENTO DE SISTEMAS
El faces-config.xml debe incluir las reglas de transicin de los estados del men
48
Navegacin
DEPARTAMENTO DE SISTEMAS
49
Navegacin
DEPARTAMENTO DE SISTEMAS
Eventos de Accin
<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
Navegacin
DEPARTAMENTO DE SISTEMAS
51
DEPARTAMENTO DE SISTEMAS
Ejemplo:
52
Referencias
DEPARTAMENTO DE SISTEMAS
[1] Java Server Faces 2.0 The Complete Reference. The complete reference. Ed Burns, Chris Schalk. McGraw Hill.
53