Post on 17-Jul-2015
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 1/39
Java Server Faces
M.B.W.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 2/39
Objetivo
Desarrollar aplicaciones web como aplicaciones
locales con Java Swing.
¿Cómo lo hace?
Gestionando las acciones del usuario de
paginas HTML, traduciéndolas a eventos ,enviándolas al servidor y regenerando la paginaoriginal reflejando los cambios.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 3/39
JSF
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 4/39
¿Qué es JSF?
JSF es un Framework de trabajo para
aplicaciones J2EE basadas en el patrón MVC.
Características principales:
Utiliza páginas JSP para generar las vistas,
añadiendo una biblioteca de etiquetas propiapara crear los elementos de los formulariosHTML.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 5/39
Características I
Asocia cada vista con un conjunto de
objetos manejados por el controlador(“managed beans”) que facilitan larecogida, manipulación y visualización de
valores mostrados en los elementos deformularios.
Introduce una serie de etapas en elproceso de la petición : como la devalidación, reconstrucción de la vista,
recuperación de los valores de loselementos, etc.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 6/39
Características II
Utiliza un sencillo fichero de configuración
para el controlador en formato xml.Es extensible, pudiendo crearse nuevos
elementos de la interfaz o modificar los yaexistentes.
y lo que es más importante:
Forma parte del estándar J2EE.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 7/39
¿Por qué utilizarlo?
Nos permite desarrollar rápidamente
aplicaciones dinámicas basadas en Java,creando páginas para las vistas muysencillas.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 8/39
Ventajas de JSF
El código JSF con el que creamos las vistas
(etiquetas jsp) es muy parecido al HTMLestándar. Lo pueden utilizar fácilmentedesarrolladores y diseñadores web.
JSF se integra dentro de la página JSP y seencarga de la recogida y generación de losvalores de los elementos de la página.
JSF resuelve validaciones, conversiones,mensajes de error e internacionalización.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 9/39
Mas ventajas
JSF es extensible, por lo que se pueden
desarrollar nuevos componentes amedida.
También se puede modificar elcomportamiento del Framework mediante
APIs que controlan su funcionamiento.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 10/39
Beneficios de JSF
Especificación estándar, implementación
de distintos fabricantes.La programación de la UI se realiza a
través de componentes y esta basada eneventos.
Es muy flexible
Separación clara entre el comportamientoy la presentación.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 11/39
Como Funciona
Esta basado en un conjunto de pantallas queinteractúan con el usuario. Estas pantallascontienen textos, botones, imágenes, tablas yelementos de selección que el usuario modifica.
La principal función del controlador JSF esasociar a las pantallas, las clases java que
recogen la información, y que disponen demétodos que responden a las acciones delusuario.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 12/39
Como Funciona II
JSF nos resuelve de manera muy sencilla yautomática muchas tareas muestra datos al
usuario en cajas de texto y tablas.
Recoge los datos introducidos por el usuario en
los campos del formulario.
Controla el estado de los formularios según el
estado de la aplicación, activando, ocultando oañadiendo y eliminando controles y demáselementos.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 13/39
Como Funciona III
Realiza validaciones y conversiones de
datos.
Rellena campos, listas, combos y otroselementes a medida que el usuario vainteractuando con la pantalla.
Controla eventos (pulsaciones de teclas,botones y movimientos del ratón).
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 14/39
Elementos principales:
Páginas JSP - Formularios JSF. Páginas que
generan las vistas de la aplicación.Beans java - Que se conectan con los
formularios JSF.
Clases java – Lógica de negocio y utilidades.
Ficheros de configuración, componentes a
medida y otros elementos del framework.Resto de recursos de la aplicación web:
recursos estáticos, javascript y otros elementos.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 15/39
JSF vs Struts
JSF es posterior a TRUTS.
Persigue el mismo objetivo : normalizar y
estandarizar el desarrollo de aplicacionesweb.
Muy similares, ambos implementan lainterfaz de usuario con paginas JSP.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 16/39
IndicThreads.com Java Meet June 2006
JavaServer Faces o Struts?
¿Porque Struts?
Mas potente y extendido,
Permite el acceso directo al
controlador.
Control de acceso por cada
accion que realiza el usuario.
Potente manejo de Layouts que
permite crear plantillas
reutilizables en multiples
paginas.
Realiza validaciones tanto en el
lado servidor como cliente.
¿Porque JSF?
Clara separación entre el comportamiento y la
presentación.
Basado en el modelo evento y listener(escucha).
Recogida de parámetros de manera más sencilla
que Struts,
Incorpora un lenguaje de expresiones que lo
hace más simple.
Modelo de conversion y validacion para
convertir y validar componentes.
Forma parte del estandard J2EE.
Soporta la creación de manejadores de eventos
asociados a los componentes de la página.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 17/39
IndicThreads.com Java Meet June 2006
Comparativa
SISITipos de conversiones
SINONavegacion de paginas
SI, despues de laintegracion con Spring
NOTransaction Management support
SISISoporta control de excepciones
SINOControl de eventos
SISIValidation Framework support
SISILayout Management - Tiles support
JSFStruts
Frameworks
Atributos
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 18/39
¿Qué es una aplicación JSF?
Se ejecuta en un contenedor de servlets y
contiene:Componentes JavaBeans.
Oyentes de eventos.Paginas (JSP).
Clases tipo beans para acceder a lasbases de datos.
Librerias de etiquetas personalizadas.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 19/39
IndicThreads.com Java Meet June 2006
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 20/39
Participantes
Autores de Paginas Lenguaje HTML, usaran exclusivamente la librería de etiquetas
Desarrolladores de aplicaciones Programan: objetos del modelo, manejadores de eventos,
validadores y navegación de paginas
Escritores de componentes Programar UI desde cero.
Vendedores de herramientas Proporcionan herramientas para mejoran la tecnología JSF.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 21/39
IndicThreads.com Java Meet June 2006
Instalacion y requisitos
Kit de desarrollo de Java (JDK)
Un servidor web (Tomcat, JBoss……)
Implementacion de referencia de JavaServer Faces
Casi todas las IDEs del Mercado soportan Java Server Faces.
Borland JBuilder Enterprise
Eclipse with Exadel Studio Pro IDE
Eclipse with Nitrox JSF IDE
IBM Rational with JSF Support
Macromedia Dreamweaver with JSTL & JSF extensions
MyEclipse with JSF Designer
Oracle's JDeveloper IDE Sun's Java Studio Creator
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 22/39
IndicThreads.com Java Meet June 2006
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 23/39
MVC en JSF
Nos permite separar :
La lógica de control (que cosas hay que
hacer pero no como)La lógica de negocio (como se hacen las
cosas)
La lógica de presentación (comointeraccionar con el usuario)
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 24/39
IndicThreads.com Java Meet June 2006
Architectura MVC en JSF
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 25/39
MVC en JSF
Por favor, introduzca su nombre y password
Nombre
Password
Aceptar
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 26/39
Componentes necesarios
Dos paginas (index.jsp y Hola.jsp)
Un Bean : Manejar datos de usuario(UsuarioBean.java)
Archivo de configuracion : Recursos delBean y reglas de Navegacion. (face-config.xml).
Archivos necesarios para el servlet :web.xml
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 27/39
MVC: Modelo
El objeto que representa y trabaja
directamente con los datos del programa:
Gestiona los datos y controla todas sustransformaciones.
No tiene conocimiento de los diferentes
controladores y/o vistas, ni siquiera contienereferencias a ellos.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 28/39
MVC: Modelo
UsuarioBean.java
Public class UsuarioBean {
Private String nombre;
Private String password;
//Atributo nombre
public String getNombre() { return nombre;}
Public void setNombre(String nuevoValor) {nombre = nuevoValor; }
//Atributo passwordpublic String getPassword() { return password;}
Public void setPassword(String nuevoValor) {password = nuevoValor; }
}
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 29/39
MVC: Modelo
La comunicación entre el modelo y el
sistema JSF se realiza mediante elfichero:
Faces-config.xml (managed-bean)
<managed-bean>
<manes-bean-name>usuario</manages-bean-name><manes-bean-class>UsuarioBean</manages-bean-class>
<manes-bean-scope>session</manages-bean-scope>
</managed-bean>
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 30/39
MVC: Vista
Objeto que maneja la presentación visual
de los datos gestionados por el modelo.Genera la representación visual y muestra
los datos.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 31/39
MVC: Vista
index.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<f:view>
<head><title> Una simple aplicación JavaServer Faces </title>
</head>
<body>
<h:form><h3>Por favor, introduzca su nombre y password.</h3>
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 32/39
MVC: Vista
<table><tr>
<td>Nombre:</td>
<td><h:inputText value="#{usuario.nombre}"/>
</td><tr>
<td>Password:</td>
<td><h:inputSecret value="#{usuario.password}"/>
</td></table><p>
<h:commandButton value="Aceptar" action="login"/></p></h:form>
</body></f:view>
</html>
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 33/39
MVC: Vista
JSF conecta la vista y el modelo
mediante:<h:inputText value=“#{usuario.nombre}”/>
El vinculo se realiza declarando el campode texto (inputText) en la vista, recogiendoel valor del atributo nombre del beanllamado usuario.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 34/39
MVC: Controlador
Objeto que proporciona significado a las
ordenes del usuario, actuando sobre losdatos representados por el modelo.
Entra en acción cuando se realiza algunaoperación.
Se comunica con el modelo y la vista a
través de una referencia al propio modelo.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 35/39
MVC: Controlador
Actúa mediante líneas de código:
<h:inputText value="#{usuario.nombre}"/>
<h:inputSecret value="#{usuario.password}"/><h:commandButton value="Aceptar" action="login"/>
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 36/39
MVC: Controlador
Y mediante reglas de navegación contenidas en el fichero faces-config.xml.
<navigation-rule><from-view-id>/index.jsp</from-view-id>
<navigation-case>
<from-outcome>login<from-outcome><to-view-id>/hola.jsp</to-view-id>
<navigation-case>
</navigation-rule>
Y mediante la vista que establece la acción
<h:commandButton value="Aceptar" action="login"/>
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 37/39
MVC: Controlador
Fichero web.xml
<web-app>
<servlet><servlet-name>Faces Servlet<servlet-name><servlet-class>javax.faces.weapp.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><welcome-file-list>
<welocome-file>index.html</welcome-file></welcome-file-list>
<web-app>
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 38/39
MVC: Controlador
La directiva <servlet> establece el únicoservlet de nuestra aplicación, es el propio delFramework JSF.
La directiva <servlet-mapping>indica la urlpara acceder al servlet definido.
<welcome-file-list> se establece la pagina deinicio de la aplicación. La cual seredirecciona a index.faces.
5/14/2018 Introduccion a JSF-1 - slidepdf.com
http://slidepdf.com/reader/full/introduccion-a-jsf-1 39/39
Conclusión
Para un proyecto nuevo, la elecciónes sencilla, como dice el propio
creador de Struts: utiliza JSF.