SlideShare una empresa de Scribd logo
5.3.2 Java Server Faces (JSF)
Framework que implementa el patr´on MVC (Modelo-Vista-Controlador)
Basado en componentes y eventos del lado del servidor
Mantiene del lado del servidor una representaci´on del interfaz de
usuario presentado en el cliente
(a) Elementos del framework
Vista: Conjunto de
8
<
:
ficheros JSP con las tag libraries de JSF
Facelets (ficheros xhtml)
otros PDLs (Page Declaration Languages) [p.ej. XUL]
Describen la jeraqu´ıa de componentes JSF que conforman cada
una de las p´aginas (pantallas) del interfaz de usuario de la
aplicaci´on.
Vinculan los componentes JSF con los Managed Beans (objetos
de respaldo)
• Se hace uso de la sintaxis del Unified Expresion Language para referenciar
los Managed Beans y sus atributos (#{objeto.atributo})
Modelo: Managed Beans (objetos de respaldo gestionados por el fra-
mework JSF)
Objetos Java (Java Beans) responsables de la l´ogica de la aplica-
ci´on
• implementada directamente en los propios Managed Beans
• delegando en componentes de negocio (EJBs, Beans SPRING, Servicios
Web, etc,...)
Responden a los eventos generados por los componentes JSF
Controlan la navegaci´on entre p´aginas (m´etodos de acci´on)
– FJRP, FMBR 2008-2010 ccia SCS – 4
Controlador: Faces Servlet (configurado en faces-config.xml [opc. en JSF
2.0]) + m´etodos de acci´on de los Managed Beans.
Todas las peticiones HTTP del usuario pasan por el Faces Servlet
Faces Servlet examina las peticiones recibidas, actualiza la re-
presentaci´on del interfaz del cliente y los datos de los Managed
Beans e invoca los manejadores de eventos y las acciones sobre
el modelo a trav´es de los m´etodos de los Managed Beans
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/jav
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout> 30 </session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
– FJRP, FMBR 2008-2010 ccia SCS – 5
Otros elementos JSF
Renderizadores (renderer): objeto responsable de generar la represen-
taci´on de los componentes JSF a mostrar en los clientes y de recuperar las
entradas de usuario recibidas (Strings en los par´ametros HTTP) para actualizar
los valores vinculados a los componentes
por defecto, JSF incluye un render kit para HTML 4.0
Convertidores y validadores (converter, validator)
Convertidores:
[Al generar la presentaci´on] transforman de forma conveniente los valores
de los objetos Java vinculados a los componentes JSF en Strings (texto
HTML)
[Al recuperar las entradas de usuario] transforman los Strings enviados
por el cliente (par´ametros HTTP) en los objetos Java vinculados a los
componentes JSF seg´un el tipo que corresponda (Integer, Double, Date,
etc)
JSF incluye conversores para los tipos b´asicos
• Paquete javax.faces.convert
• Etiquetas <f:convertDateTime>, <f:convertNumber>, ...
Validadores:
Ojetos responsables de comprobar (antes de actualizar los atributos de los
Managed Beans) que los valores recibidos y almacenados en los componen-
tes JSF cumplen las restricciones especificadas. (validaciones del lado del
servidor)
• cada componente JSF que reciba datos de entrada puede tener asociado
1 o m´as validadores
• JSF incluye una serie de validadores est´andar: <f:validateLength>,
<f:validateDoubleRange>, <f:validateRegExp>, ...
– FJRP, FMBR 2008-2010 ccia SCS – 6
(b) Ciclo de vida de JSF
1. Restaurar vista: Faces Servlet localiza la vista correspondiente a la
URL de la petici´on recibida
Si es la primera visita: genera el ´arbol de componentes de esa
vista (UIViewRoot) a partir de su fichero de definici´on (JSP,
Facelets, ....)
Si la vista ya fue generada: recupera el correspondiente
(UIViewRoot) previo
– FJRP, FMBR 2008-2010 ccia SCS – 7
2. Actualizar valores petici´on: A partir de los valores de entrada que
llegan en la petici´on HTTP (campos de entrada, par´ametros HTTP,
cookies, campos cabecera HTTP, etc) se actualizan los valores
vinculados a los nodos del ´arbol de componentes (UIViewRoot) que
representa el interfaz de usuario.
S´olo se actualiza el estado de los componentes, no los valores de
los Managed Beans
Se realizan las conversiones String-Objeto necesarias (act´uan los
Converters)
Si hay errores de conversi´on se salta a la fase de Renderizado para
informar del error.
• Se renderiza la misma p´agina.
• Si incluye componentes para mensajes de error (<h:message>,
<h:messages>) se hacen visibles con los errores de conversi´on de
los componentes implicados.
– FJRP, FMBR 2008-2010 ccia SCS – 8
3. Procesar validaciones: JSF recorre recursivamente el ´arbol de
componentes (UIViewRoot) que los valores recibidos por cada com-
ponente son aceptables.
Act´uan los Validators asociados a cada componentes JSF.
Si hay errores de conversi´on se salta a la fase de Renderizado para
informar del error.
• Se renderiza la misma p´agina.
• Si incluye componentes para mensajes de error (<h:message>,
<h:messages>) se hacen visibles con los errores de validaci´on de
los componentes implicados.
4. Actualizar valores del modelo: Se actualizan los valores de los
atributos de los Managed Beans vinculados a los componentes JSF
mediante EL (expresi´on language).
Esos valores ya han sido convertidos y validades ⇒ es ”seguro”
actualizar los objetos de respaldo que conforman el Modelo.
– FJRP, FMBR 2008-2010 ccia SCS – 9
5. Invocar l´ogica de aplicaci´on: Se invocan los m´etodos de los
Managed Beans (que ya tendr´an sus atributos sincronizados con las
entradas del usuario)
a) Se invocan los manejadores de eventos registrados en los compo-
nentes JSF.
Eventos de cambio de valor (atributo valueChangeListener
en componentes de entrada [<h:inputText>, <h:inputTextArea>,
<h:selectOneListbox>, ...])
<h:selectOneMenu valueChangeListener="#{model.menuValueChanged}"
value="#{model.serviceLevel}">
....
public void menuValueChanged(ValueChangeEvent evt) {...}
Eventos de acci´on (atributo actionListener en componentes de acci´on
[<h:commandLink>, <h:commandButton>])
<h:commandButton value="Confirm"
actionListener="#{UserBean.confirmActionListene
....
public void confirmActionListener(ActionEvent evt) {...}
b) Se invocan los m´etodos de acci´on y se toman las decisiones de
navegaci´on.
Determina c´ual ser´a la p´agina JSF a partir de la que se generar´a la respuesta
a renderizar.
6. Renderizar respuesta: Una vez decidida cu´al es la vista a enviar al
cliente (p´agina actual con componentes de mensaje ”activados” si
hubo error ´o la siguiente p´agina a mostrar si todo fue correcto) se
generada la representaci´on de sus componentes (HTML, XML, ...)
En esta fase se almacena la representaci´on en memoria de la vista
actual (UIViewRoot) para posteriores visitas.
Adicionalmente se pueden vincular manejadores de eventos espec´ıficos
que se incocar´an en distintas etapas del ciclo de vida JSF (lifecicle
events).
– FJRP, FMBR 2008-2010 ccia SCS – 10
(c) Managed Beans
Objetos de respaldo gestionados por el framework JSF
El contenedor los crea en tiempo de ejecuci´on cuando son necesarios
para la aplicaci´on.
Cualquier Java Bean (constructor sin argumentos + acceso con
getXXX() y setXXX()) definido como public puede ser configurado
como Managed Beans
Tambi´en se permiten listas (java.util.List) y tablas Hash
(java.util.Map)
Son responsables del Modelo.
Almacenan los datos a mostar en las vistas o los recuperadas de la
entrada de usuario
Implementan la l´ogica de la aplicaci´on (directamente o delegada)
Manejan la nevagaci´on entre las vistas
Pueden ser compartidos por varias vistas (depender´a de su alcance).
Se vinculan a las vistas empleando el EL (expression language)
Declaraci´on de Managed Beans .
En JSF 2.0 se declaran y configuran con la anotaci´on @ManagedBean.
Se les puede asignar un nombre (par´ametro name=’’....’’)
Puede especificarse su alcance (scope ´o visibilidad)
Alcance
@ApplicationScoped Objetos disponibles para todas las peticiones de
cualquier usuario en todas las vistas de la aplicaci´on
@SessionScoped Objetos disponibles para todas las peticiones que formen
parte de la misma sesi´on de un cliente
(valores permanecen entre peticiones de la misma sesi´on)
@ViewScoped Objetos disponibles para todas las peticiones que se
realicen sobre la misma vista (p´agina JSF)
(valores permanecen hasta que se navegue a otra p´agina)
@RequestScoped Objetos disponibles desde que se recibe una petici´on
hasta que se la respuesta se env´ıa al cliente
(alcance por defecto)
@NoneScoped Objetos no son visibles a las vistas JSF, s´olo a otros Managed Beans
– FJRP, FMBR 2008-2010 ccia SCS – 11
Ejemplo
@ManagedBean
@SessionScoped
public UsuarioController {....}
Tambi´en es posible declararlos en el fichero faces-config (´unica
opcion en JSF 1.x)
<managed-bean>
<managed-bean-name> usuarioController </managed-bean-name>
<managed-bean-class> controladores.UsuarioController </managed-bean-c
<managed-bean-scope> session </managed-bean-scope>
</managed-bean>
Se pueden especificar los valores de las propiedades de los Managed
Beans
Con la anotaci´on @ManagedProperty o en faces-config con
<managed-property>
Util para inicializar esos atributos o para inyectarles referencias a
otros Managed Beans o a sus propiedades.
@ManagedBean
public class BookController {
@ManagedProperty(value = "#{initController.defaultBook}")
private Book book;
@ManagedProperty(value = "this is a title")
private String aTitle;
<managed-bean>
<managed-bean-name> bookController </managed-bean-name>
<managed-bean-class> controller.BookController </managed-bean-class>
<managed-bean-scope> session </managed-bean-scope>
<managed-property>
<property-name> aTitle </property-name>
<value> this is a title </value>
</managed-property>
<managed-property>
<property-name> book </property-name>
<value> #{initController.defaultBook} </value>
</managed-property>
...
</managed-bean>
– FJRP, FMBR 2008-2010 ccia SCS – 12
Ciclo de vida de los Managed Beans
Los Managed Beans son creados por el Framework JSF cuando
se necesitan (nunca se llama directamente a su new())
Se puede ejecutar c´odigo propio justo despu´es de su creaci´on
anotando m´etodos con @PostConstruct y justo antes de su
liberaci´on, con @PreDestroy.
Referencias a Managed Beans .
Todo Managed Beans tiene asignado un identificador con el que es
referenciado en las vistas JSF para las que sea visible empleando la
sintaxis EL (
emphExpression Language).
Para especificar al acceso desde las vistas JSF a propiedades o los
m´etodos a ejecutar de un Managed Beans se emplea la notacion
#nombreManagedBean.nombreAtributo.
En el caso de propiedades se especifican mediante el atributo
value=’’...’’ de los componentes JSF.
Esas referencias se traducir´an en llamadas a los respecticos m´eto-
dos getAtributo() o setAtributo(...) seg´un corresponda al compo-
nente JSF.
En JSF 2.0 se permite pasar par´ametros a los m´etodos especifi-
cados con EL.
– FJRP, FMBR 2008-2010 ccia SCS – 13
(d) Navegaci´on y acciones
Los componentes de acci´on (<h:commandLink>, <h:commandButton>)
fuerzan el envio de una petici´on HTTP POST desde el cliente.
Mediante su atributo action=’’...’’ se puede especificar la si-
guiente vista JSF a la que navegar cuando se activen.
• Puede especificarse directamente el nombre de la vista destino (la
extensi´on es opcional) [navegaci´on impl´ıcita]
• Puede incluir una referencia a un m´etodo de acci´on de un Mana-
ged Beans accesible desde esa vista.
Los m´etodos de acci´on deben ser p´ublicos y devolver un String
El String de retorno especifica c´ual ser´a la siguiente vistas
• Si el nombre de una vista (la extensi´on es opcional) se renderi-
zar´a esa p´agina. [navegaci´on impl´ıcita]
• Si el String est´a recogido en las reglas de navegaci´on del fichero
<faces-config> se renderizar´a esa p´agina.
• En otro caso se recarga la p´agina actual (informando del error en
los componentes de mensajes)
En EL de JSF 2.0 se permite pasar par´ametros a los m´etodos.
Dependiendo de las necesidades de cada aplicaci´on concreta, t´ıpica-
mente los m´etodos de acci´on:
• Invocan a la l´ogica de aplicaci´on con los datos que se acaban
de recibir del cliente (ya sincronizados con las propiedades del
Managed Bean)
• Deciden a qu´e vista navegar en base a las propiedades del Mana-
ged Bean
• Preparan los datos precisos para esa vista, invocando la l´ogica de
la aplicaci´on
• Devuelven el String que indentifica la vista de destino
– FJRP, FMBR 2008-2010 ccia SCS – 14
Ejemplo reglas de navegaci´on
<?xml version=’1.0’ encoding=’UTF-8’?>
<faces-config xmlns="..." version="2.0">
<navigation-rule>
<from-view-id>newBook.xhtml</from-view-id>
<navigation-case>
<from-outcome>sucess</from-outcome>
<to-view-id>listBooks.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>listBooks.xhtml</from-view-id>
<navigation-case>
<from-outcome>sucess</from-outcome>
<to-view-id>newBook.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>error-fatal</from-outcome>
<to-view-id>error.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
– FJRP, FMBR 2008-2010 ccia SCS – 15

Más contenido relacionado

Similar a Tema5 3.jsf

Introducción JEE
Introducción JEEIntroducción JEE
J2ee
J2eeJ2ee
J2ee
J2eeJ2ee
01 introducción
01 introducción01 introducción
01 introducción
Roberto Moreno Doñoro
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
carlossanchezvillena
 
Java Web - JSF
Java Web - JSFJava Web - JSF
Java Web - JSF
Luis Miguel De Bello
 
06. jsf (java server faces) (1)
06. jsf (java server faces) (1)06. jsf (java server faces) (1)
06. jsf (java server faces) (1)
Michael Mieles Caballero
 
JUG DAY FLEX / JEE
JUG DAY FLEX / JEEJUG DAY FLEX / JEE
JUG DAY FLEX / JEE
jcoronel
 
Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generation
Sergi Almar i Graupera
 
Intro a ASP.NET
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NET
williamsm
 
Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
Josue Cucaita Murcia
 
1 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_11 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_1
josezapana
 
Javaserver Faces (jsf)
Javaserver Faces (jsf)Javaserver Faces (jsf)
Javaserver Faces (jsf)
Enrique Polo
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
Antonio Palomares Sender
 
Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
Paco_1994
 
J2 ee
J2 eeJ2 ee
Desarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEDesarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EE
Fernando Montaño
 
J Headstart, EvolucióN De Forms A Adf
J Headstart, EvolucióN De Forms A AdfJ Headstart, EvolucióN De Forms A Adf
J Headstart, EvolucióN De Forms A Adf
Pedro Gallardo
 
Curso richfaces 3.3.3 I
Curso richfaces 3.3.3 ICurso richfaces 3.3.3 I
Curso richfaces 3.3.3 I
eclaudioaugusto
 
ABI-Box
ABI-BoxABI-Box

Similar a Tema5 3.jsf (20)

Introducción JEE
Introducción JEEIntroducción JEE
Introducción JEE
 
J2ee
J2eeJ2ee
J2ee
 
J2ee
J2eeJ2ee
J2ee
 
01 introducción
01 introducción01 introducción
01 introducción
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
Java Web - JSF
Java Web - JSFJava Web - JSF
Java Web - JSF
 
06. jsf (java server faces) (1)
06. jsf (java server faces) (1)06. jsf (java server faces) (1)
06. jsf (java server faces) (1)
 
JUG DAY FLEX / JEE
JUG DAY FLEX / JEEJUG DAY FLEX / JEE
JUG DAY FLEX / JEE
 
Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generation
 
Intro a ASP.NET
Intro a ASP.NETIntro a ASP.NET
Intro a ASP.NET
 
Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
 
1 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_11 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_1
 
Javaserver Faces (jsf)
Javaserver Faces (jsf)Javaserver Faces (jsf)
Javaserver Faces (jsf)
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
 
Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
 
J2 ee
J2 eeJ2 ee
J2 ee
 
Desarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEDesarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EE
 
J Headstart, EvolucióN De Forms A Adf
J Headstart, EvolucióN De Forms A AdfJ Headstart, EvolucióN De Forms A Adf
J Headstart, EvolucióN De Forms A Adf
 
Curso richfaces 3.3.3 I
Curso richfaces 3.3.3 ICurso richfaces 3.3.3 I
Curso richfaces 3.3.3 I
 
ABI-Box
ABI-BoxABI-Box
ABI-Box
 

Último

Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
AMADO SALVADOR
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Festibity
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
KukiiSanchez
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
Miguel Rebollo
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
al050121024
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
paulroyal74
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
AMADO SALVADOR
 

Último (20)

Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
 

Tema5 3.jsf

  • 1. 5.3.2 Java Server Faces (JSF) Framework que implementa el patr´on MVC (Modelo-Vista-Controlador) Basado en componentes y eventos del lado del servidor Mantiene del lado del servidor una representaci´on del interfaz de usuario presentado en el cliente (a) Elementos del framework Vista: Conjunto de 8 < : ficheros JSP con las tag libraries de JSF Facelets (ficheros xhtml) otros PDLs (Page Declaration Languages) [p.ej. XUL] Describen la jeraqu´ıa de componentes JSF que conforman cada una de las p´aginas (pantallas) del interfaz de usuario de la aplicaci´on. Vinculan los componentes JSF con los Managed Beans (objetos de respaldo) • Se hace uso de la sintaxis del Unified Expresion Language para referenciar los Managed Beans y sus atributos (#{objeto.atributo}) Modelo: Managed Beans (objetos de respaldo gestionados por el fra- mework JSF) Objetos Java (Java Beans) responsables de la l´ogica de la aplica- ci´on • implementada directamente en los propios Managed Beans • delegando en componentes de negocio (EJBs, Beans SPRING, Servicios Web, etc,...) Responden a los eventos generados por los componentes JSF Controlan la navegaci´on entre p´aginas (m´etodos de acci´on) – FJRP, FMBR 2008-2010 ccia SCS – 4
  • 2. Controlador: Faces Servlet (configurado en faces-config.xml [opc. en JSF 2.0]) + m´etodos de acci´on de los Managed Beans. Todas las peticiones HTTP del usuario pasan por el Faces Servlet Faces Servlet examina las peticiones recibidas, actualiza la re- presentaci´on del interfaz del cliente y los datos de los Managed Beans e invoca los manejadores de eventos y las acciones sobre el modelo a trav´es de los m´etodos de los Managed Beans <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/jav <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>faces/index.xhtml</welcome-file> </welcome-file-list> </web-app> – FJRP, FMBR 2008-2010 ccia SCS – 5
  • 3. Otros elementos JSF Renderizadores (renderer): objeto responsable de generar la represen- taci´on de los componentes JSF a mostrar en los clientes y de recuperar las entradas de usuario recibidas (Strings en los par´ametros HTTP) para actualizar los valores vinculados a los componentes por defecto, JSF incluye un render kit para HTML 4.0 Convertidores y validadores (converter, validator) Convertidores: [Al generar la presentaci´on] transforman de forma conveniente los valores de los objetos Java vinculados a los componentes JSF en Strings (texto HTML) [Al recuperar las entradas de usuario] transforman los Strings enviados por el cliente (par´ametros HTTP) en los objetos Java vinculados a los componentes JSF seg´un el tipo que corresponda (Integer, Double, Date, etc) JSF incluye conversores para los tipos b´asicos • Paquete javax.faces.convert • Etiquetas <f:convertDateTime>, <f:convertNumber>, ... Validadores: Ojetos responsables de comprobar (antes de actualizar los atributos de los Managed Beans) que los valores recibidos y almacenados en los componen- tes JSF cumplen las restricciones especificadas. (validaciones del lado del servidor) • cada componente JSF que reciba datos de entrada puede tener asociado 1 o m´as validadores • JSF incluye una serie de validadores est´andar: <f:validateLength>, <f:validateDoubleRange>, <f:validateRegExp>, ... – FJRP, FMBR 2008-2010 ccia SCS – 6
  • 4. (b) Ciclo de vida de JSF 1. Restaurar vista: Faces Servlet localiza la vista correspondiente a la URL de la petici´on recibida Si es la primera visita: genera el ´arbol de componentes de esa vista (UIViewRoot) a partir de su fichero de definici´on (JSP, Facelets, ....) Si la vista ya fue generada: recupera el correspondiente (UIViewRoot) previo – FJRP, FMBR 2008-2010 ccia SCS – 7
  • 5. 2. Actualizar valores petici´on: A partir de los valores de entrada que llegan en la petici´on HTTP (campos de entrada, par´ametros HTTP, cookies, campos cabecera HTTP, etc) se actualizan los valores vinculados a los nodos del ´arbol de componentes (UIViewRoot) que representa el interfaz de usuario. S´olo se actualiza el estado de los componentes, no los valores de los Managed Beans Se realizan las conversiones String-Objeto necesarias (act´uan los Converters) Si hay errores de conversi´on se salta a la fase de Renderizado para informar del error. • Se renderiza la misma p´agina. • Si incluye componentes para mensajes de error (<h:message>, <h:messages>) se hacen visibles con los errores de conversi´on de los componentes implicados. – FJRP, FMBR 2008-2010 ccia SCS – 8
  • 6. 3. Procesar validaciones: JSF recorre recursivamente el ´arbol de componentes (UIViewRoot) que los valores recibidos por cada com- ponente son aceptables. Act´uan los Validators asociados a cada componentes JSF. Si hay errores de conversi´on se salta a la fase de Renderizado para informar del error. • Se renderiza la misma p´agina. • Si incluye componentes para mensajes de error (<h:message>, <h:messages>) se hacen visibles con los errores de validaci´on de los componentes implicados. 4. Actualizar valores del modelo: Se actualizan los valores de los atributos de los Managed Beans vinculados a los componentes JSF mediante EL (expresi´on language). Esos valores ya han sido convertidos y validades ⇒ es ”seguro” actualizar los objetos de respaldo que conforman el Modelo. – FJRP, FMBR 2008-2010 ccia SCS – 9
  • 7. 5. Invocar l´ogica de aplicaci´on: Se invocan los m´etodos de los Managed Beans (que ya tendr´an sus atributos sincronizados con las entradas del usuario) a) Se invocan los manejadores de eventos registrados en los compo- nentes JSF. Eventos de cambio de valor (atributo valueChangeListener en componentes de entrada [<h:inputText>, <h:inputTextArea>, <h:selectOneListbox>, ...]) <h:selectOneMenu valueChangeListener="#{model.menuValueChanged}" value="#{model.serviceLevel}"> .... public void menuValueChanged(ValueChangeEvent evt) {...} Eventos de acci´on (atributo actionListener en componentes de acci´on [<h:commandLink>, <h:commandButton>]) <h:commandButton value="Confirm" actionListener="#{UserBean.confirmActionListene .... public void confirmActionListener(ActionEvent evt) {...} b) Se invocan los m´etodos de acci´on y se toman las decisiones de navegaci´on. Determina c´ual ser´a la p´agina JSF a partir de la que se generar´a la respuesta a renderizar. 6. Renderizar respuesta: Una vez decidida cu´al es la vista a enviar al cliente (p´agina actual con componentes de mensaje ”activados” si hubo error ´o la siguiente p´agina a mostrar si todo fue correcto) se generada la representaci´on de sus componentes (HTML, XML, ...) En esta fase se almacena la representaci´on en memoria de la vista actual (UIViewRoot) para posteriores visitas. Adicionalmente se pueden vincular manejadores de eventos espec´ıficos que se incocar´an en distintas etapas del ciclo de vida JSF (lifecicle events). – FJRP, FMBR 2008-2010 ccia SCS – 10
  • 8. (c) Managed Beans Objetos de respaldo gestionados por el framework JSF El contenedor los crea en tiempo de ejecuci´on cuando son necesarios para la aplicaci´on. Cualquier Java Bean (constructor sin argumentos + acceso con getXXX() y setXXX()) definido como public puede ser configurado como Managed Beans Tambi´en se permiten listas (java.util.List) y tablas Hash (java.util.Map) Son responsables del Modelo. Almacenan los datos a mostar en las vistas o los recuperadas de la entrada de usuario Implementan la l´ogica de la aplicaci´on (directamente o delegada) Manejan la nevagaci´on entre las vistas Pueden ser compartidos por varias vistas (depender´a de su alcance). Se vinculan a las vistas empleando el EL (expression language) Declaraci´on de Managed Beans . En JSF 2.0 se declaran y configuran con la anotaci´on @ManagedBean. Se les puede asignar un nombre (par´ametro name=’’....’’) Puede especificarse su alcance (scope ´o visibilidad) Alcance @ApplicationScoped Objetos disponibles para todas las peticiones de cualquier usuario en todas las vistas de la aplicaci´on @SessionScoped Objetos disponibles para todas las peticiones que formen parte de la misma sesi´on de un cliente (valores permanecen entre peticiones de la misma sesi´on) @ViewScoped Objetos disponibles para todas las peticiones que se realicen sobre la misma vista (p´agina JSF) (valores permanecen hasta que se navegue a otra p´agina) @RequestScoped Objetos disponibles desde que se recibe una petici´on hasta que se la respuesta se env´ıa al cliente (alcance por defecto) @NoneScoped Objetos no son visibles a las vistas JSF, s´olo a otros Managed Beans – FJRP, FMBR 2008-2010 ccia SCS – 11
  • 9. Ejemplo @ManagedBean @SessionScoped public UsuarioController {....} Tambi´en es posible declararlos en el fichero faces-config (´unica opcion en JSF 1.x) <managed-bean> <managed-bean-name> usuarioController </managed-bean-name> <managed-bean-class> controladores.UsuarioController </managed-bean-c <managed-bean-scope> session </managed-bean-scope> </managed-bean> Se pueden especificar los valores de las propiedades de los Managed Beans Con la anotaci´on @ManagedProperty o en faces-config con <managed-property> Util para inicializar esos atributos o para inyectarles referencias a otros Managed Beans o a sus propiedades. @ManagedBean public class BookController { @ManagedProperty(value = "#{initController.defaultBook}") private Book book; @ManagedProperty(value = "this is a title") private String aTitle; <managed-bean> <managed-bean-name> bookController </managed-bean-name> <managed-bean-class> controller.BookController </managed-bean-class> <managed-bean-scope> session </managed-bean-scope> <managed-property> <property-name> aTitle </property-name> <value> this is a title </value> </managed-property> <managed-property> <property-name> book </property-name> <value> #{initController.defaultBook} </value> </managed-property> ... </managed-bean> – FJRP, FMBR 2008-2010 ccia SCS – 12
  • 10. Ciclo de vida de los Managed Beans Los Managed Beans son creados por el Framework JSF cuando se necesitan (nunca se llama directamente a su new()) Se puede ejecutar c´odigo propio justo despu´es de su creaci´on anotando m´etodos con @PostConstruct y justo antes de su liberaci´on, con @PreDestroy. Referencias a Managed Beans . Todo Managed Beans tiene asignado un identificador con el que es referenciado en las vistas JSF para las que sea visible empleando la sintaxis EL ( emphExpression Language). Para especificar al acceso desde las vistas JSF a propiedades o los m´etodos a ejecutar de un Managed Beans se emplea la notacion #nombreManagedBean.nombreAtributo. En el caso de propiedades se especifican mediante el atributo value=’’...’’ de los componentes JSF. Esas referencias se traducir´an en llamadas a los respecticos m´eto- dos getAtributo() o setAtributo(...) seg´un corresponda al compo- nente JSF. En JSF 2.0 se permite pasar par´ametros a los m´etodos especifi- cados con EL. – FJRP, FMBR 2008-2010 ccia SCS – 13
  • 11. (d) Navegaci´on y acciones Los componentes de acci´on (<h:commandLink>, <h:commandButton>) fuerzan el envio de una petici´on HTTP POST desde el cliente. Mediante su atributo action=’’...’’ se puede especificar la si- guiente vista JSF a la que navegar cuando se activen. • Puede especificarse directamente el nombre de la vista destino (la extensi´on es opcional) [navegaci´on impl´ıcita] • Puede incluir una referencia a un m´etodo de acci´on de un Mana- ged Beans accesible desde esa vista. Los m´etodos de acci´on deben ser p´ublicos y devolver un String El String de retorno especifica c´ual ser´a la siguiente vistas • Si el nombre de una vista (la extensi´on es opcional) se renderi- zar´a esa p´agina. [navegaci´on impl´ıcita] • Si el String est´a recogido en las reglas de navegaci´on del fichero <faces-config> se renderizar´a esa p´agina. • En otro caso se recarga la p´agina actual (informando del error en los componentes de mensajes) En EL de JSF 2.0 se permite pasar par´ametros a los m´etodos. Dependiendo de las necesidades de cada aplicaci´on concreta, t´ıpica- mente los m´etodos de acci´on: • Invocan a la l´ogica de aplicaci´on con los datos que se acaban de recibir del cliente (ya sincronizados con las propiedades del Managed Bean) • Deciden a qu´e vista navegar en base a las propiedades del Mana- ged Bean • Preparan los datos precisos para esa vista, invocando la l´ogica de la aplicaci´on • Devuelven el String que indentifica la vista de destino – FJRP, FMBR 2008-2010 ccia SCS – 14
  • 12. Ejemplo reglas de navegaci´on <?xml version=’1.0’ encoding=’UTF-8’?> <faces-config xmlns="..." version="2.0"> <navigation-rule> <from-view-id>newBook.xhtml</from-view-id> <navigation-case> <from-outcome>sucess</from-outcome> <to-view-id>listBooks.xhtml</to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <from-view-id>listBooks.xhtml</from-view-id> <navigation-case> <from-outcome>sucess</from-outcome> <to-view-id>newBook.xhtml</to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <from-view-id>*</from-view-id> <navigation-case> <from-outcome>error-fatal</from-outcome> <to-view-id>error.xhtml</to-view-id> </navigation-case> </navigation-rule> </faces-config> – FJRP, FMBR 2008-2010 ccia SCS – 15