introduccion a jsf-1

39
 Java Server Faces M.B.W.

Upload: jesus-marquez

Post on 17-Jul-2015

389 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduccion a JSF-1

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.

Page 2: Introduccion a JSF-1

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.

Page 3: Introduccion a JSF-1

5/14/2018 Introduccion a JSF-1 - slidepdf.com

http://slidepdf.com/reader/full/introduccion-a-jsf-1 3/39

 

JSF

 

Page 4: Introduccion a JSF-1

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.

 

Page 5: Introduccion a JSF-1

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. 

Page 6: Introduccion a JSF-1

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.

 

Page 7: Introduccion a JSF-1

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.

 

Page 8: Introduccion a JSF-1

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.

 

Page 9: Introduccion a JSF-1

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.

 

Page 10: Introduccion a JSF-1

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.

 

Page 11: Introduccion a JSF-1

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.

 

Page 12: Introduccion a JSF-1

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.

 

Page 13: Introduccion a JSF-1

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).

 

Page 14: Introduccion a JSF-1

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.

 

Page 15: Introduccion a JSF-1

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.

 

Page 16: Introduccion a JSF-1

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.

 

Page 17: Introduccion a JSF-1

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

 

Page 18: Introduccion a JSF-1

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.

 

Page 19: Introduccion a JSF-1

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

 

Page 20: Introduccion a JSF-1

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.

 

Page 21: Introduccion a JSF-1

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

 

Page 22: Introduccion a JSF-1

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

 

Page 23: Introduccion a JSF-1

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)

 

Page 24: Introduccion a JSF-1

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

 

Page 25: Introduccion a JSF-1

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

 

Page 26: Introduccion a JSF-1

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

 

Page 27: Introduccion a JSF-1

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.

 

Page 28: Introduccion a JSF-1

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; }

}

 

Page 29: Introduccion a JSF-1

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>

 

Page 30: Introduccion a JSF-1

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.

 

Page 31: Introduccion a JSF-1

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>

 

Page 32: Introduccion a JSF-1

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>

 

Page 33: Introduccion a JSF-1

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.

 

Page 34: Introduccion a JSF-1

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.

 

Page 35: Introduccion a JSF-1

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"/>

 

Page 36: Introduccion a JSF-1

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"/>

 

Page 37: Introduccion a JSF-1

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>

 

Page 38: Introduccion a JSF-1

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.

 

Page 39: Introduccion a JSF-1

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.