DEPARTAMENTO DE SISTEMAS Contenedores y JavaServer Faces 1 Agenda DEPARTAMENTO DE SISTEMAS • • • • Introducción Contenedores Contenedor Glassflish Tecnología JavaServer Faces o o o o o o Definición JSF Navegación Backing Beans JSF Tags Conversión y Validación Manejo de Eventos 2 Introducción DEPARTAMENTO DE SISTEMAS • La arquitectura JEE es independiente de la plataforma y utiliza componentes reutilizables • El servidor JEE provee los servicios en la forma de un contenedor (container) para cada tipo de componente. • El desarrollador se concentra en resolver problemas del lógica de negocio. 3 Introducción DEPARTAMENTO DE SISTEMAS Sin servidor de aplicaciones Con servidor de aplicaciones Resolver problemas a nivel de: Provee servicios comunes como: - Transacciones - Persistencia - Distribución de objetos - Administración de conexiones - Redundancia - Construcción frameworks propios - Comprar soluciones propietarias (limitaciones) - Persistencia - Transacciones - Distribución de Objetos - Administración de conexiones - Los proveedores implementan los estándares - Configuración centralizada - Permiten centrarse en los problemas del negocio - Sus servicios se utilizan a través de APIs estándares - Desarrollar soluciones independiente de la plataforma - Mayor nivel de integración 4 Introducción DEPARTAMENTO DE SISTEMAS • Servicios Contenedor: o Interfaz entre los componentes y la plataforma que los soporta o Desplegar aplicaciones ensambladas, lo cual implica configurar el contenedor para la aplicación JEE o Las configuraciones del contenedor incluyen la seguridad, administración de transacciones, persistencia, servicios de jndi y conectividad remota o Su funcionalidad es definida por la plataforma JEE y es diferente para cada tipo de componente 5 Introducción DEPARTAMENTO DE SISTEMAS o Seguridad: permite configurar los componentes web o EJB para que solo sean utilizados por usuarios autorizados y autenticados mediante JAAS o Transacciones (JTA): permite el manejo de transacciones distribuidas que están en múltiples recursos como una unidad (especificación JSR 907). o Búsqueda (JNDI lookup): interfaz unificada para acceso a servicios de nombres y directorios. o El modelo de conectividad remota JEE administra las comunicaciones a bajo nivel entre clientes y beans empresariales de manera transparente. 6 Introducción DEPARTAMENTO DE SISTEMAS • Tipos de contenedores: o o o Contenedor Web Contenedor de aplicación cliente Contenedor EJB 7 Contenedores DEPARTAMENTO DE SISTEMAS • Contenedor WEB Es una interfaz entre los componentes Web (servlets, páginas JavaServer Faces o Páginas JSP) y el servidor web. En tiempo de ejecución ofrece los servicios requeridos por los componente web. o Servicios: o Recepción de solicitudes Seguridad Concurrencia Administración del ciclo de vida de componentes web Permite acceso de los componentes web a las APIs tales como transacciones. Ejemplos: Tomcat, Jetty. 8 Contenedores DEPARTAMENTO DE SISTEMAS • Contenedor EJB (Enterprise JavaBeans) Es la interfaz entre los beans empresariales (proveen la lógica del negocio) y el servidor JEE. o Servicios o Gestiona la ejecución (ciclo de vida) de los EJBs Se ejecuta sobre un servidor JEE Soporta los componentes que implementan la lógica de negocio Ofrece servicios de control de acceso y seguridad, control de transacciones y ejecución concurrente entre otras. Ejemplos : JBoss, Glassfish 9 Contenedores DEPARTAMENTO DE SISTEMAS • Contenedor Aplicaciones Cliente Es la interfaz entre las aplicaciones clientes JEE las cuales son aplicaciones especiales Java SE que usan los componentes de servidor JEE. o Servicios: Se ejecutan en la máquina del cliente Es el gateway entre la aplicación cliente y los componentes del servidor JEE que usa el cliente. 10 Sun GlassFishTM Enterprise Server DEPARTAMENTO DE SISTEMAS • Sun GlassFishTM Enterprise Server Servidor de aplicaciones que implementa las especificaciones Java EE, construida por una comunidad open source (Sun, Ericsson, Oracle entre otros). Permite crear, ensamblar, desplegar y depurar código para aplicaciones empresariales. 11 Sun GlassFishTM Enterprise Server DEPARTAMENTO DE SISTEMAS • Características: o o o Soporta tecnologías: JSP, JSF, Servlets, EJBs, Java API para Servicios Web (JAX-WS), Arquitectura Java para Enlaces XML (JAXB), Java Persistence API. Código abierto (GPL) Certificado con estándares Sun JAVA System Application Server 9 PE 12 Sun GlassFishTM Enterprise Server DEPARTAMENTO DE SISTEMAS • Versión 2 (Java EE 5) o o o o o o o o o o o WS stack Rendimiento Balanceo de carga Clustering Proyecto metro : integración entre servicios Web alojados en tecnología Java con servicios de windows ESB Java Business Integration (JBI) Integración con IDE Netbeans Administración centralizada Soporte de scripting Framework de testing unificado 13 Sun GlassFishTM Enterprise Server DEPARTAMENTO DE SISTEMAS • Versión 3 o o o o o o Basado en arquitectura modular OSGi (Open Services Gateway initiative) con capacidad para trabajar plataforma Java EE 6 release Soporta JSF 2.0 JAX-RS 1.0 es suportada para construir servicios WEB RESTful. Soporte JRuby Maneja extensibilidad y modularidad Soporta: aplicaciones Java EE, RoR (Ruby on Rails), Phobos, Grails Comparación entre versiones https://glassfish.dev.java.net/public/comparing_v2_and_v3.html 14 Arquitectura Glassfish V.3 DEPARTAMENTO DE SISTEMAS 15 Comparación Contenedores JEE DEPARTAMENTO DE SISTEMAS Tomado de http://weblogs.java.net/blog/jdcampbell/archive/2008/02/top_java_5_ee_s_1.html Yes: La característica está disponible en el servidor Available: La característica requiere instalaciones adicionales Partial: la característica no está completamente soportada 16 Aplicación Web DEPARTAMENTO DE SISTEMAS • Aplicación Web Es una extensión dinámica de un servidor web o de aplicación. Consta de componentes web, archivos estáticos como imágenes, librerías y clases utilitarias. Hay dos tipos de aplicaciones web: o o Orientadas a Presentación: genera paginas web interactivas, contiene varios tipos de leguaje como HTML, XML. Orientadas a Servicio: Implementa los endpoint de un servicio web. 17 Aplicación Web DEPARTAMENTO DE SISTEMAS • Ciclo de Vida de una Aplicación Web. o o o o o o Desarrollar el código de los componentes web Desarrollar el descriptor del componente web ( Un descriptor es un archivo en formato xml que contiene la información de configuración para el despliegue de la aplicación web) Compilar los componentes de la aplicación web junto con las clases utilitarias referenciadas por los componentes Empaquetar la aplicación para ser desplegada (opcional) Desplegar la aplicación en un contenedor web Acceder al url que referencia en la aplicación web, el puerto de referencia es definido en el contenedor web 18 Aplicación Web DEPARTAMENTO DE SISTEMAS • Módulo Web Un modulo web JEE corresponde a una aplicación web definida en la especificación de Java Servlet . Es la unidad de recursos web (componentes web, recursos estáticos, librerías) que puede ser desplegada. Un modulo Web tiene la siguiente estructura: Descriptor de despliegue aplicación web Archivos JAR de librerías utilizadas por las clases del lado del servidor Clases de lado del servidor: servlets, clases de utilidades, javaBeans. Un directorio que contiene los archivos tag, implementaciones de librerías tag. . Tomado de http://docs.sun.com/app/docs/doc/819-3669/bnadr?a=view 19 Aplicación Web DEPARTAMENTO DE SISTEMAS • Tecnologías Java para Aplicaciones WEB Tomado de http://docs.sun.com/app/docs/doc/819-3669/bnadr?a=view 20 Tecnología JSF DEPARTAMENTO DE SISTEMAS • “La tecnología Java Server Faces (JSF) es un marco de trabajo de interfaces de usuario del lado de servidor para aplicaciones Web basadas en tecnología Java”. (Sun Microsystems) – Estándar de Java (JSR-127) 21 Tecnología JSF DEPARTAMENTO DE SISTEMAS • Beneficios o o o o o o Separación entre el comportamiento y la presentación de una aplicación web, facilitando el mantenimiento Manejo de elementos UI como objetos con estado en el servidor. Contienen conceptos a nivel de capa web y componentes UI sin limitarlo a tecnologías de scripting particular o lenguaje markup Permite la separación clara de roles en desarrollo Estandarización: Los más grandes vendedores de herramientas de desarrollo colaboran con su mantenimiento. Aunque la tecnología JSF incluye una biblioteca de etiquetas JSP personalizadas para representar los componentes en una página JSP, el API de la tecnología JSF son capas directamente encima de la API Servlet. 22 Tecnología JSF DEPARTAMENTO DE SISTEMAS • Qué ofrece el framework JSF o o o Un conjunto de componentes web prefabricados Un modelo de programación orientado a eventos Un modelo de componentes que permiten a terceros y desarrolladores crear nuevos componentes 23 Tecnología JSF DEPARTAMENTO DE SISTEMAS Funcionamiento JavaServer Faces 24 Tomado de: http://java.sun.com/javaee/5/docs/tutorial/doc/ Tecnología JSF DEPARTAMENTO DE SISTEMAS • 25 Partes de una aplicación JSF o Un conjunto de páginas JSP o Un conjunto de componentes JavaBeans llamados backing beans, los cuales definen las propiedades y funciones para los componentes UI sobre una pagina JSP o Archivos de configuración de la aplicación, los cuales definen las reglas de navegación y configuración de beans u otros objetos como componentes definidos por el cliente o Un archivo descriptor de despliegue (web.xml) o Conjunto de objetos cliente creados por el desarrollador de la aplicación como: componentes, validadores, conversores o listeners. o Un conjunto de tags del cliente para representar los objetos del cliente sobre la página Tecnología JSF DEPARTAMENTO DE SISTEMAS Ciclo de vida de una página JSF (l) 26 Tecnología JSF DEPARTAMENTO DE SISTEMAS • Las aplicaciones JSF deben acoplarse a las especificaciones Servlet v.2.3 y JavaServer Pages v.1.2, estas especificaciones son empaquetadas en archivos WAR, los cuales conforman los requerimientos para ejecutar las aplicaciones en un contenedor • Un archivo WAR debe contener: o o o o Un descriptor de despliegue web.xml Un conjunto de archivos JAR que contienen las clases Un conjunto de clases de la aplicación, paginas JSF y otros recursos requeridos Un archivo de configuración delos recursos de la aplicación 27 Tecnología JSF DEPARTAMENTO DE SISTEMAS • La estructura de directorio de un archivo WAR es: • En Netbeans la estructura de directorios para una aplicación Web es: 28 Tecnología JSF DEPARTAMENTO DE SISTEMAS • Pasos en el proceso de desarrollo: o Mapear la instancia del FacesServlet o Crear de las páginas que utilizan los componentes UI y los core tags. o Definir de página de navegación en el archivo de configuración de la aplicación. o Desarrollar de backing beans o Adicionar en el archivo de configuración de la aplicación los managed bean. 29 Definición Páginas DEPARTAMENTO DE SISTEMAS • Mapear la instancia del FacesServlet Todas las aplicaciones JSF deben incluir un mapeo a la instancia de FacesServlet en sus descriptores de despliegue, para identificar las paginas que deben ser administradas en el ciclo de vida de JavaServer Faces. Esta instancia acepta las peticiones, administra el ciclo de vida de la aplicación e inicializa los recursos requeridos por JSF. Ejemplo tomado del descriptor WEB-INF/web.xml, de la aplicación guessNumber (http:// docs.sun.com/app/docs/doc/819-3669/bnaph?a=view). 30 Definición Páginas DEPARTAMENTO DE SISTEMAS • Crear las páginas o Una página JSF tiene los tags usuales de HTML y HEAD o Se deben declarar los tags de las librerías para acceder a los componentes del core y de html 1. Librería de etiquetas personalizadas para componentes UI de HTML identificado con el prefijo h 3. Librería de etiquetas personalizadas para representar manejadores de eventos, validadores, y conversores. 4. También es posible utilizar la librería de apache <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %> 31 Definición Páginas DEPARTAMENTO DE SISTEMAS o Las páginas JSF son representadas con un árbol de componentes definido como view. El tag view representa la raíz del árbol. Se puede utilizar el tag subview para incluir páginas entre otras. o Todos los componentes deben estar definidos allí y está definido en la librería core. El tag form representa un componente de entrada. Todos los componentes editables (cajas de texto, botones) se deben ubicar entre el tag form 32 Definición Páginas DEPARTAMENTO DE SISTEMAS • Componentes UI en paginas JSF. o Etiquetas. El tag output Text representa las etiquetas (label). En el ejemplo el valor de la etiqueta está siendo consultado del método get del propiedad minimun y maximun del Backing Bean UserNumberBean 33 Definición Páginas DEPARTAMENTO DE SISTEMAS Imagen: define ruta de la imagen y id Botón: define id, acción ( especifica la propiedad de salida que ayuda al mecanismo de navegación a definir cual es la página siguiente) y valor Caja de texto: define etiqueta, propiedad de Backing Bean que recibe valor, mensaje de error. Se hace una validación de rango con “validateLongRange” 34 Definición Páginas DEPARTAMENTO DE SISTEMAS Ejemplo de página JSF 35 Navegación DEPARTAMENTO DE SISTEMAS • El modelo de navegación de JavaServer Faces facilita definir la navegación entre páginas y mejorar el procesamiento para elegir la secuencia en la cual las páginas son cargadas. • La navegación es definida con un conjunto de reglas en el archivo faces-congif.xml, para seleccionar la página que se debe desplegar, a partir de un evento generado por un componente (botón, link). • Tipos de navegación o Navegación Estática o Navegación Dinámica 36 Navegación DEPARTAMENTO DE SISTEMAS • Navegación Estática <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> 37 Navegación DEPARTAMENTO DE SISTEMAS • Navegación Dinámica o La navegación depende de cada usuario y de datos particulares <h:commandButton label="Login" action="#{loginController.verifyUSer}"/> String verifyUser() { if (...) return "success" else return "failure" } 38 Navegación DEPARTAMENTO DE SISTEMAS • Definen la secuencia en que son cargadas las páginas de una aplicación. • Se deben registrar en el archivo de configuración faces – config.xml 39 Navegación DEPARTAMENTO DE SISTEMAS • La navegación se define en el archivo faces-config.xml • Si va a agregar un nuevo archivo de navegación, se debe incluir en la lista de archivos del web.xml • En el faces-config.xml de cada módulo se deben especificar las clases que implementan los beans y el alcance de cada uno de estos objetos 40 Navegación 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 navegación a seguir. • En este ejemplo el caso “success” es resultado del llamado al método createRole del RoleBean. 41 Navegación DEPARTAMENTO DE SISTEMAS • Menú de navegación • incluir dentro del archivo common/jsp/menu.jsp el nuevo elemento 42 Navegación DEPARTAMENTO DE SISTEMAS • El faces-config.xml debe incluir las reglas de transición de los estados del menú 43 Backing Beans DEPARTAMENTO DE SISTEMAS • Clases JAVA (Java Beans) • Su propósito es separar los componentes UI de los objetos que ejecutan el procesamiento y mantienen los datos • Facilitan la comunicación entre los beans reales de la aplicación y la UI. • Responsabilidades o Interactúan con el modelo o Escuchan eventos de la vista o Dan respuesta a las solicitudes 44 Backing Beans DEPARTAMENTO DE SISTEMAS • Getters y setters para sus propiedades • Métodos de acción o eventos de la capa web implementados en métodos de los beans. o actions o Ejecutan acciones sobre el modelo y dejan los resultados en los atributos del bean siempre termina con una regla de navegación (por lo que se entiende que un action tiene tipo de retorno String) action listeners Método para poblar información antes de cargar un jsp recibe un evento como parámetro y no retorna nada Uso de un Web Bean en un JSP (para visualizar un attr) < ……… value =“#{bookListBean.books}”/> 45 Backing Beans DEPARTAMENTO DE SISTEMAS • El Backing Bean define propiedades y métodos que son asociados con los componentes UI usados en la página. 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> 46 DEPARTAMENTO DE SISTEMAS 47 Backing Beans Backing Beans DEPARTAMENTO DE SISTEMAS 48 Backing Beans DEPARTAMENTO DE SISTEMAS • Configuración de un Bean JavaServer Faces soporta la administración 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. 49 Backing Beans DEPARTAMENTO DE SISTEMAS • Los beans se configuran en el archivo facesconfig.xml. Este archivo es procesado cuando la aplicación inicia, si una página hace referencia a un bean, la implementación JavaServer Faces inicializa de acuerdo a su configuración 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 aplicación. En tiempo de ejecución JSF implementa procesos para el managed-bean. 50 Backing Beans DEPARTAMENTO DE SISTEMAS • Ejemplo Declaración de Managed-Bean <managed-bean> <managed-bean-name>UserNumberBean</managed-beanname> <managed-bean-class>guessNumber.UserNumberBean</ managed-bean-class> <managed-bean-scope>session</managed-bean-scope> <managed-property> <property-name>minimum</property-name> <property-class>long</property-class> <value>0</value> </managed-property> </managed-bean> 51 Backing Beans DEPARTAMENTO DE SISTEMAS • Cada managed-bean contiene las siguientes propiedades: o o o • Managed-bean-name: es único y se mantiene en el ámbito de la aplicación. Este nombre debe coincidir con el valor que se utiliza en las páginas 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. 52 JSF Tags DEPARTAMENTO DE SISTEMAS • Los tags están definidos en dos librerías principales o Core o HTML • Requieren importación <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 53 JSF Tags DEPARTAMENTO DE SISTEMAS • Algunos JSF Core Tags o o o o o o o o o o o view subview Attribute param facet actionListener valueChangeListener converter validator validateLength selectitem 54 JSF Tags DEPARTAMENTO DE SISTEMAS <h:selectOneMenu> <h:selectOneRadio> <h:selectManyListbox> Volver 55 <h:selectOneListbox> <h:selectManyMenu> <h:selectManyCheckboxlist> Conversión y Validación DEPARTAMENTO DE SISTEMAS • JSF ofrece soporte para conversión y validación de datos o Conversión de números y fechas o ConvertNumber convertDateTime Manejo de errores de conversión <h:message> <h:inputText value="#{payment.date}"> <f:convertDateTime pattern="mm/yyyy"/> </h:inputText> <h:outputText value="#{payment.amount}"> <f:convertNumber type="currency" </h:outputText> 56 Ejemplos de conversores DEPARTAMENTO DE SISTEMAS <h:outputText value="#{user.dateOfBirth}"> <f:convertDateTime type="date" dateStyle="short"/> </h:outputText> *** Los conversores tienen encuenta los conceptos de internacionalización y localización. 57 Conversión y Validación DEPARTAMENTO DE SISTEMAS • Validaciones o o o Longitud de cadenas Rangos de números Valores requeridos <h:inputText id="card" value="#{payment.card}"> <f:validateLength minimum="13" </h:inputText> 58 Manejo de Eventos DEPARTAMENTO DE SISTEMAS • Aplicaciones Web o Deben reaccionar a eventos de usuario o Seleccionar elementos de un menú Click en un botón JSF Soporte tres tipos de eventos Cambio de valores Acciones Disparados por componentes input (h:inputText) Disparados por componentes command (h:commandButton) Fases (Phase) Disparados dentro del ciclo de vida de la JSF 59 Manejo de Eventos DEPARTAMENTO DE SISTEMAS • Eventos por Cambio de Valor <h:selectOneMenu value="{form.country}" onchange="submit()"> valueChangeListener="{form.countryChanged}" <f:selectItems value="{form.countryNames}"> </h:selectOneMenu> 60 Manejo de Eventos DEPARTAMENTO DE SISTEMAS • Eventos de Acción <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; } } 61 Manejo de Eventos DEPARTAMENTO DE SISTEMAS 62 Ejemplo: DEPARTAMENTO DE SISTEMAS 63 Agenda DEPARTAMENTO DE SISTEMAS Conceptos JSP Desarrollo aplicaciones Web 64 Proceso de Desarrollo DEPARTAMENTO DE SISTEMAS Creación del prototipo en html Definición de la forma en que interactuarán los usuarios con el requerimiento Diseño Identificación de los estados en los que el usuario interactúa con el sistema Implementación Creación de las páginas JSP e implementación de los web beans 65 Creación del prototipo en html DEPARTAMENTO DE SISTEMAS Crear páginas html que muestren cómo el usuario va a visualizar y a interactuar con un requerimiento Identificar estilos, formas, imágenes, íconos y convenciones 66 Diseño DEPARTAMENTO DE SISTEMAS Diseñar JSPs y Web Beans que contienen la información que se va a desplegar en cada jsp. Los Web Beans contienen los métodos con los cuales se van a hacer las acciones sobre el sistema. 67 Un Bean por cada página de presentación de cada componente Un Bean que contiene el listado de modelBO. Diseño: Diagrama de Estados DEPARTAMENTO DE SISTEMAS Todos los diagramas deben empezar por lo menos con un action Los actions pueden ser llamados desde el menú o desde un botón dentro del sistema Si hay una acción en el Bean antes de mostrar el jsp se debe tener un actionListener. Las transiciones de los estados son el resultado de pasar de una página a otra o interactuar con algún Bean. Todos los diagramas deben finalizar en una jsp. 68 Diagrama de Estados: Ejemplos DEPARTAMENTO DE SISTEMAS Requerimientos de Listar 69 Diagrama de Estados: Ejemplos DEPARTAMENTO DE SISTEMAS Requerimientos de creación 70 Diagrama de Estados DEPARTAMENTO DE SISTEMAS Si se pasa a una jsp con una acción de navegación se debe usar la palabra action al final. Si se pasa a una jsp con el resultado de una acción de un Bean se debe usar la palabra “success”. Al pasar a un Bean se debe usar el método/ propiedad que se va a llamar. 71 Guía de Implementación DEPARTAMENTO DE SISTEMAS Implementar WEB Delegates Implementar Web Beans Intermedian relación entre Web Beans y Beans de Sesión Implementar getters y setters de sus atributos (incluyendo los del BO ), los action y action listeners Ajustar Archivo de configuración Declarar la nueva navegación y los web beans Adicionar el nuevo requerimiento al menú Implementar JSPs A partir del prototipo adicionar los tags de JSF y los componentes adicionales Ajustes al packaging Los nuevos archivos y módulos deben quedar incluidos dentro del war que se construye 72 DEPARTAMENTO DE SISTEMAS Ciclo de vida de una página JSF 2. Posibles escenarios del ciclo de vida A. Petición No-Faces genera una Respuesta Faces: Enlace de una página HTML que abre una página que contiene componentes JSF B. Petición Faces genera una Respuesta No-Faces Evitar la fase de “renderizar” la Respuesta C. Una Petición Faces genera una Respuesta Faces 73 Página Inicial DEPARTAMENTO DE SISTEMAS listBooks.jsp 74 Eliminar DEPARTAMENTO DE SISTEMAS 75 DEPARTAMENTO DE SISTEMAS Ejemplo 76 DEPARTAMENTO DE SISTEMAS Ejemplo 77 Ejemplo DEPARTAMENTO DE SISTEMAS 78 DEPARTAMENTO DE SISTEMAS Ejemplo 79 Ejemplo DEPARTAMENTO DE SISTEMAS 80 Ejercicio DEPARTAMENTO DE SISTEMAS Construya el Diagrama de estado para el proyecto 81 Material DEPARTAMENTO DE SISTEMAS • • Este material fue preparado por • Nicolás López • Pilar Villamil Este material fue revisado y actualizado por • Darío Correal • Yeimi Peña 82 Referencias DEPARTAMENTO DE SISTEMAS Presentación JavaServer Faces. Betsy Lanchero, 2006-2 The Java EE 5 Tutorial . Sun. Junio 16, 2006 Bergsten, Hans. JavaServer Faces. O’Reilly. 2004 Horstmann, Cay. Core JavaServer Faces. Prentice Hall. 2004. http://www.coreservlets.com http://java.sun.com/j2ee/javaserverfaces JSF Web Steps – QualDev Group http://chie.uniandes.edu.co/~changeset/wiki/doku.php? id=development:resources:tutorials:development:jsfwebsteps http://co.sun.com/practice/software/glassfish/landing/que_es.html http://docs.sun.com/app/docs/doc/820-7695/fvxzc?a=browse http://docs.sun.com/app/docs/doc/819-3669/bnadr?a=view 83