Java Server Faces (JSF) Sandra Álvarez Teruelo Miguel Ángel Barcenilla Mancha Cristina Rodríguez Gallego Ana María Salas Fernández Departamento de Ingeniería Telemática Universidad Carlos III de Madrid Contenido Introducción Descripción Desarrollo Uso Conclusiones Referencias 2
Introducción Qué es? JavaServer Faces (JSF) es un framework basado en el patrón MVC (Modelo Vista Controlador) para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. Un framework es una estructura de soporte definida en la cual otro proyecto de software puede ser organizado y desarrollado. Típicamente suelen incluir soporte de programas, bibliotecas y un lenguaje interpretado entre otros para ayudar a desarrollar y unir los diferentes componentes de un proyecto. 3 Introducción JSF pretende normalizar y estandarizar el desarrollo de aplicaciones web. Ofrece una clara separación entre el comportamiento y la presentación, lo que permite a cada miembro del equipo de desarrollo de una aplicación Web enfocarse en su parte del proceso de desarrollo, y proporciona un sencillo modelo de programación para enlazar todas las piezas. 4
Introducción Origen Los frameworks son diseñados con el intento de facilitar el desarrollo de software, permitiendo a los diseñadores y programadores pasar más tiempo identificando requerimientos de software que tratando con los tediosos detalles de bajo nivel de proveer un sistema funcional. La tecnología JavaServer Faces surge como una solución a la separación entre la presentación y el comportamiento en una aplicación Web, de forma tal que las actividades de los autores de las páginas puedan separarse de las actividades de los desarrolladores de la lógica. 5 Introducción Esto posibilita el desarrollo de entornos de desarrollos (IDE) que permitan trabajar en el diseño con funcionalidades del tipo dragand-drop. Te permite programar más rápidamente, ahorra trabajo, da consistencia a tu código, permite separar presentación de negocio y mejora la seguridad de tu aplicación JSF es posterior a la herramienta de soporte para el desarrollo de aplicaciones Web Apache Struts, por lo que se nutre de su experiencia y mejora algunas sus deficiencias. 6
Introducción Struts es una herramienta de soporte para el desarrollo de aplicaciones Web bajo el patrón MVC bajo la plataforma J2EE (Java 2, Enterprise Edition). Struts vs JSF: JSF gana en Flexibilidad del Controlador y manejo de eventos, navegación, desarrollo de paginas, integración y extensibilidad se las lleva JSF. Struts sale vencedor en madurez y en nada mas!! Esto no significa que JSF vaya a desplazar a otros frameworks. Struts y JSF pueden combinarse para dotar a la aplicación de una extensa plataforma de desarrollo en donde todas las capas de la implementación tienen su espacio definido. Descripción Características Tecnología que ejecuta del lado del servidor La especificación JSF fue diseñada según los siguientes principios: Amigable Independiente del protocolo y del dispositivo del cliente Posibilidad de utilizarse con tecnologías JSP Independencia de tecnologías JSP Escalable Posibilidad de utilizarse con navegadores Web actuales
Descripción Características Principales componentes API e implementación de referencia Librería de etiquetas JSP personalizadas Con estos elementos podemos: Conectar eventos generados en el cliente con código de la aplicación en el servidor Mapear componentes UI a la página de datos del servidor Construir un UI con componentes reutilizables y extensibles Grabar y restaurar el estado del UI más allá de la vida de las peticiones del servidor Descripción Ventajas Clara separación entre el comportamiento y la presentación La separación de la lógica permite a cada miembro del equipo de desarrollo encargarse de su cometido y posteriormente enlazar las partes Mejora los conceptos familiares de componente-ui y capa- Web sin limitarnos a tecnología de script particular o lenguaje de marcas Aunque incluye librería de etiquetas JSP personalizadas, los APIs de JSF se han creado sobre el API JavaServlet: usar tecnología presentación distina de JSP, crear componentes personalizados, generar salida para diferentes dispositivos cliente Proporciona una rica arquitectura para manejar el estado de los componentes, procesar datos, validar la entrada del usuario y manejar eventos
Desarrollo Instalación de MyFaces: Implementación de JSF de Software Libre Implementación de JSF de Software Libre. Proporciona herramientas adicionales. Posibilidad de instalar otro tipo de implementación, nos permite no adaptarnos al proveedor. Desarrollar una sencilla aplicación JavaServer Faces requiere la realización de estos pasos: Desarrollar los objetos del modelo, los que contendrán los datos. Añadir las declaraciones del bean controlado al fichero de configuración de la aplicación. Crear las páginas. Definir la navegación entre las páginas. Desarrollo : Desarrollar los Objetos del Modelo
Desarrollo:Añadir las Declaraciones del Bean Controlado Añadir declaraciones para los beans configuración de la aplicación. en el fichero de Declaración de Bean controlado para UserNumberBean: Procesa este fichero en el momento de arrancar la aplicación e inicializa los beans y los almacena en el ámbito de sesión. Equivalente a jsp:usebean en JSP s. Desarrollo: Crear las Páginas
Desarrollo: Definir navegación por las páginas. Definir la navegación de páginas por la aplicación. Cada regla de navegación define cómo ir de una página a otras páginas de la aplicación. Uso Dónde se usa? Hay cientos de sitios públicos en la web utilizando la tecnología JSF. No se sabe cuántos sitios JSF no evidentes existen, ni el número de sitios de la intranet que lo están utilizando, debido a la naturaleza secreta del mundo financiero. Varias empresas han acordado ser usuarios JSF referenciados, y sus historias están documentadas en la página http://jsfcentral.com/trenches/. Cualquier cliente de JavaStudio Creator, Oracle JDeveloper, o cualquiera de los productos y herramientas que aparece en el Listado Central de Productos de JSF también están utilizando JSF. Existe una lista de sitios desarrollados con Java Server Faces que se publica en Java.Net, una página Wiki sobre sitios desarrollados con JSF. 16
Uso Algunos sitios añadidos por los usuarios: Gecko Hosting Intra Muros... Oxford from Inside Maximize Physiotherapy Ninth Avenue Software Ordina Job Portal Peerflix (similar to Netflix) Rebecca Preston Riverside Fitness Santapark Pastoral Co Suikonix - Gensou Suikoden Artworks Sunburnt Web Services Sunshine Coast Cycling Club The AntiqueRegistry UQ Triathlon UQ Dance Steel-MAX Virgin Megastores UK InFact Book Search 17 Uso Kennard Consulting http://www.kennardconsulting.com/kc/index.jsf 18
Uso Rite Aid - Ask Your Pharmacist https://www.riteaid.com/myriteaid/login.jsf 19 Uso Sydney Buyers Agents - We Find, You Buy http://www.sydneypropertybuyersagents.com.au/spba/index.jsf 20
Uso Se puede observar que con JSF conseguimos un nivel de presentación llamativo, que es sencillo de hacer y modificar. Los elementos del interfaz de usuario (componentes JSF) y demás aspectos gráficos de las páginas estarán diseñados de forma que se pueda cambiar posteriormente su aspecto sin necesidad actuar sobre cada uno de los formularios o páginas de aplicación. 21 Uso Historias Linking Paths Es una empresa aventurera e innovadora formada por Aitor García, Alberto Molpeceres y Roberto Salicio. Han trabajado con Java Server Faces en algunos de sus productos. No porque creyesen que es el framework definitivo, sino como una apuesta estratégica de cara al futuro. Después de más de 5 años haciendo aplicaciones web, les plantea tanto dudas como respuestas. Dicen que JSF ofrece una serie de ventajas indudables (componentes configurables, ocultar en parte que es una aplicación web, ser un estándar, etc. ), pero que a la vez muestra que aún le faltan un par de vueltas. 22
Uso Creen que los dos grandes problemas son: o La forma estándar de distribuir y configurar los nuevos componentes: Hay proyectos como Tomahawk (perteneciente a myfaces) que ofrece componentes varios para nuestras aplicaciones (menus paginadores, pestañas, etc.), pero no hay forma sencilla de utilizarlos (no se pueden usar con pinchar y arrastrar, que es otra de las bondades que se esperan de JSF). o Información: como toda nueva tecnología, la cantidad de información es menor que la disponible para otras más consolidadas como Apache Struts. No sólo libros, sino información de proyectos reales, de los problemas que se han ido encontrando, etc. 23 Uso Ellos se preguntan Está Java Server Faces preparado para un uso real en la empresa?. Su respuesta es sí. A pesar de esos pequeños inconvenientes Java Server Faces es una posibilidad más que ha venido para quedarse y con buenas perspectivas de futuro, y nadie que se dedique al desarrollo web en Java debería perderlo de vista. 24
Conclusiones JSF surge como un framework muy prometedor y una opción muy recomendable para nuevos desarrollos. Una de las principales ventajas de trabajar con la tecnología Java Server Faces es que esta basado en el patrón MVC (Modelo Vista Controlador) ofreciendo una limpia separación entre el comportamiento y la presentación JSF pretende normalizar y estandarizar el desarrollo de aplicaciones web Permite la posibilidad de reutilización de beans de otras aplicaciones. A JSF aun le falta consolidarse algunos años más para poder encontrar tanta información sobre esta tecnología como se encuentra sobre otros frameworks competidores. 25 Referencias http://es.wikipedia.org/wiki/javaserver_faces http://es.wikipedia.org/wiki/framework http://www.programacion.com/java/tutorial/jsf_intro/2/ http://www.desarrolloweb.com/articulos/2380.php http://www.comunidadjava.com.ar/javaserver.pdf http://weblog.linkingpaths.com/ http://weblog.linkingpaths.com/2005/10/11/%c2%bfesta-java-server-facespreparado-para-la-vida-real-%c2%bfya/ http://wiki.java.net/bin/view/projects/realworldjsflinks http://www.jsfcentral.com/listings/a3070?link http://java.sun.com/developer/technicalarticles/gui/javaserverfaces/ 26