Curso de JavaServer Faces



Documentos relacionados
Curso de Spring Framework

5.3.2 Java Server Faces (JSF)

Capítulo 4. Mini Tutorial

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz

Curso Desarrollo Java Web con JSP, Servlets y el MVC

Capitulo III. Diseño del Sistema.

Curso de Java EE Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1

UNIVERSIDAD DE PIURA

Análisis y diseño del sistema CAPÍTULO 3

Curso de Java EE Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1

Desarrollo de Aplicaciones Web con JAVA: J2EE y Struts

Configuración servidor Tomcat

FUNCIONAMIENTO: FUNCIONALIDAD

arquitectura que maneja. Encontraremos también los diferentes servidores que

Taller de Sistemas de Información 2

FRAMEWORK SPRING EN UNA APLICACIÓN WEB

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Capitulo 5. Implementación del sistema MDM

El sistema posee 7 módulos correspondientes a:

PROGRAMACIÓN PÁGINAS WEB CON PHP

Introducción a PHP. * No es necesario declarar previamente las variables.

LiLa Portal Guía para profesores

Curso de HTML5 y CSS3

ATLAS MANUAL DE USUARIO COMPONENTES JSF BUSINESS OBJECTS XI

Creación y administración de grupos locales

Desarrollo de Software con

Curso de HTML5 y CSS3

Facultad de Ingeniería Escuela de Ciencias y Sistemas Estructura de Datos Guatemala 2013 JSF + JSP + RichFaces

Toda base de datos relacional se basa en dos objetos

Tutorial: Primeros Pasos con Subversion

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

Agosto. Un primer JSP. Guía rápida. [ h t t p : / / w w w. o p e n b o x e r m b. c o m / j a v a. p h p ]

Universidad Tecnológica del Valle del Mezquital. Desarrollo de Aplicaciones Web. Manual JSP

JSF 2.0 (Java Server Faces) Yadira Jarvio Hernández

Oracle 12c DISEÑO Y PROGRAMACIÓN

Curso de Jboss Administración

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Tema 5. Plataforma Java EE

Capítulo II. Arquitectura del Software

Capítulo 1 Documentos HTML5

Guía de instalación de la carpeta Datos de IslaWin

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas

Lección 1 Introducción a Struts. uacosta@globalmentoring.com.mx

Implementación CAPÍTULO 4

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado

Curso de Android con Java

Requisitos técnicos para la instalación. Arquitectura Hardware Arquitectura Software. Instrucciones de instalación GONG-R

1

MANUAL DE USUARIO DE EGROUPWARE MANUAL DE USUARIO EGROUPWARE

Creación y administración de grupos de dominio

10 razones para cambiarse a un conmutador IP

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

Vicepresidente Regional

Unidad 1. Fundamentos en Gestión de Riesgos

Programación páginas web. Servidor (PHP)

GUIA DE USO DEL ACCPRO

Windows Server 2012: Infraestructura de Escritorio Virtual

Capítulo III. Análisis y diseño.

Técnicas de Programación

GUÍA BÁSICA USUARIO MOODLE 2.6

Programa de Actualización Profesional Curso: Java Avanzado JEE7 Programa del Curso

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

C a p í t u l o 3 : T r a b a j o r e l a c i o n a d o

WINDOWS : COPIAS DE SEGURIDAD

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. aplicaciones web con

CATÁLOGO DE FORMACIÓN

Capitulo VI. Conclusiones.

PowerPoint 2010 Modificar el diseño de las diapositivas

Windows Server 2012: Infraestructura de Escritorio Virtual

Sistema informatizado de Trazabilidad alimentaria

Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el C.

UNIDAD DIDÁCTICA Nº 7 USO DE LOS RECURSOS EN MOODLE

WEB SERVICES CREACIÓN DEL SERVICIO

RUEDA TORRES DULCE CAROLINA 3CM2 HIBERNATE EN UNA APLICACIÓN WEB

Configuración factura electrónica. construsyc instasyc

Funcionalidades Software SAT GotelGest.Net (Software de Servicio de Asistencia Técnica)

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

JavaScript como Orientación a Objetos

SIEWEB. La intranet corporativa de SIE

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013

Autenticación Centralizada

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd

GUÍA TÉCNICA. Desarrollo de Sistemas de Información la plataforma Business Intellingence Pentaho

Curso de Java POO: Programación orientada a objetos

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

La plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.

Guía Práctica para el Uso del Servicio de Software Zoho CRM

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

Guía de instalación de la carpeta Datos de ContaWin

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Tema 5. Plataforma Java EE

MANUAL DE USUARIO CMS- PLONE

Sección de Introducción.

Tutorial Enterprise Architect 7.5 Versión en español

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra.

Transcripción:

1

Una JavaBean es una clase Java que sigue las siguientes convenciones: Constructor vacío Atributos de clase privados Por cada atributo, se crean los métodos getters y setters El Objetivo de los Managed Beans es controlar el estado de las páginas web. JSF administra automáticamente los Managed Beans: Crea las instancias o Por ello la necesidad de un constructor vacío Controla su ciclo de vida o JSF determina el ámbito o alcance (request, session, application, etc) de cada Managed Bean Llama los métodos getters o setters o Por ejemplo: <h:inputtext value="#{empleado.apellidopaterno} al hacer submit llamará el método setapellidopaterno( ) o Otro ejemplo: #{empleado.nombre} indirectamente llamará al método getnombre( ) Los Managed Beans los podemos declarar de varias formas, ya sea utilizando anotaciones o en el archivo faces-config.xml. 2

Existen varias formas de declarar un Managed Bean en JSF 2.0. Aunque se recomienda, en caso de utilizar un contenedor JEE 6 (Java Enterprise Edition 6) utilizar la anotación de CDI. CDI (Contexts and Dependency Inyection) ofrece un modelo más flexible para administrar los Beans, como parte de la especificación JEE 6. Los beans CDI están asociados a un contexto, por ej. request, session, etc., por medio de la anotación @Named seguido del alcance, ej. @RequestScoped. CDI especifica un mecanismo para inyectar beans, interceptar, filtrar u observar eventos. CDI utiliza el concepto de Inversion of Control (IoC), el cual lo podemos entender como fábricas de Beans. El concepto de IoC permite crear aplicaciones con bajo acoplamiento. El bean debe implementar la interface serializable 3

Los JSF proveen los siguientes alcances o ámbitos (scopes) para almacenar información en forma de un mapa o tabla (llave, valor). JSF 2.0 agregó algunos otros alcances, llamados view, custom. El alcance de custom es simplemente un estructura de datos map que enlaza objetos (values) con llaves (keys). El tiempo de vida del map es administrado por el implementador. Las anotaciones para el manejo de alcances JSF son: - @ RequestScoped (ámbito por default) - @ ViewScoped - @ SessionScoped - @ ApplicationScoped Las anotaciones de alcance se utilizan después de la anotación del Bean, por ejemplo: @ManagedBean @SessionScoped public class UsuarioForm{ } 4

JSF y CDI tienen en común los alcances de request, session y application. Aunque se encuentran en distintos paquetes. Paquete para JSF: javax.faces.bean Paquete para CDI: javax.enterprise.context Además, CDI agrega un alcance más, conocido como conversation. Este alcance permite guardar información entre páginas relacionadas y la información almacenada es eliminada hasta que se cumple cierta meta. Las anotaciones para el manejo de alcances CDI son: - @ RequestScoped (ámbito por default) - @ ConversationScoped - @ SessionScoped - @ ApplicationScoped 5

Podemos crear Managed Beans que posteriormente serán utilizados en las páginas JSF, comúnmente utilizando Expression Language de JSF (EL). En el caso 1, se utilizan las anotaciones de JSF. Esto genera un objeto de tipo EmpleadoForm llamado empleadoform (el nombre empieza con minúsculas), además JSF agrega este objeto al alcance de sesión. Por lo que el bean creado, se puede utilizar directamente utilizando EL: #{empleadoform.atributo} En el caso 2, se utiliza la notación CDI de JEE 6. El proceso es muy similar a la notación de JSF. Para configurar los beans CDI, se debe agregar un archivo beans.xml al directorio WEB-INF, que puede quedar en blanco. Este archivo se utiliza para declarar cuestiones específicas en el manejo de CDI. Si el despliegue de nuestra aplicación se va a realizar en un Servidor JEE 6, se recomienda utilizar CDI, en cambio si se va a utilizar un Servidor Web como Tomcat, se puede utilizar las anotaciones de JSF. 6

En muchas ocasiones una página JSF puede utilizar varios Managed Beans, de ahí la necesidad de relacionar distintos Managed Beans. La inyección de dependencias (Dependency Injection DI) es un derivado de IoC. Uno de los iniciadores de este principio fue Spring framework y al día de hoy es una práctica muy utilizada en arquitecturas JEE. Podemos lograr la inyección de dependencias de 2 maneras: 1) Con anotaciones: Manejando la anotación @ManagedProperty en la propiedad del Managed Bean a inyectar. 2) Con el archivo faces-config.xml: Agregando la etiqueta <managedproperty> dentro del Managed Bean declarado. 7

El archivo faces-config.xml nos permite agregar la configuración de JSF de manera centralizada. El formato general del archivo JSF depende de la versión a utilizar, en este caso es un ejemplo de la versión JSF 2.0. <?xml version="1.0"?> <faces-config xmlns=" " xmlns:xsi=" " xsi:schemalocation=" " version="2.0"> </faces-config> Con el uso de anotaciones, cada vez es menos indispensable utilizar este archivo, aunque todavía suele utilizarse para tareas como el manejo regional (varios lenguajes en la aplicación web) entre otras tareas. 8

Podemos observar un ejemplo de configuración de Managed Beans utilizando el archivo faces-config.xml. El primer bean declarado, empleadobean, se encuentra en el paquete beans. Al no definir un scope, se crea por default en el alcance de request. El segundo bean declarado (empleadoform) se encuentra en el paquete forms. Dicho bean tiene una dependencia con empleadobean, por lo que se manda a llamar el método setempleadobean de la clase EmpleadoForm para inyectar la dependencia. Esta forma de configurar beans es más extensa que al utilizar anotaciones, pero permite tener centralizada la configuración en un solo archivo. 9

El lenguaje de Expresión (EL) nos permite evaluar y crear más fácilmente expresiones en nuestras páginas JSF. En JSP s también existe un lenguaje de expresión, pero tiene una diferencia en su sintaxis, por ejemplo: En JSP: ${nombrebean.propiedad} En JSF: #{nombrebean.propiedad} EL permite enlazar la Vista con el Modelo, por lo que desde una página JSF podemos acceder fácilmente a los Managed Beans de JSF. Cuando una EL encuentra un bean a utilizar, lo busca en cierto alcance. El orden de búsqueda es: request, view, session, application Una vez que se ha ubicado el Bean a utilizar, se manda a llamar el método get o set de la propiedad indicada, por ejemplo: nombrebean.getpropiedad(); 10

Al igual que en los JSPs, la tecnología JSF permite acceder a varios de los objetos implícitos disponibles en sus propias páginas. Por ejemplo, si queremos acceder a un bean llamado empleadobean, en el alcance de sesión, podemos utilizar cualquiera de las siguientes notaciones: 1) #{empleadobean.propiedad} 2) #{sessionscope.empleadobean.propiedad} 3) #{sessionscope["empleadobean"].propiedad} Debido a que el bean de empleado se encuentra en el alcance de sesión, podemos recuperarlo ya sea directamente o a través de la variable implícita sessionscope. Además la variable sessionscope, al ser un mapa, podemos utilizar la notación de arreglos para acceder a sus elementos. EL también nos permite acceder a propiedades de manera anidada, por ejemplo: #{empleadobean.direccion.calle} 11

EL cuenta con una serie de operadores para evaluar expresiones, aunque se considera buena práctica no utilizar de manera excesiva esta característica ya que se rompe con el patrón de diseño MVC al agregar lógica en la Vista. Como podemos observar en el extracto de código, el elemento panelgroup, el cual es similar a un elemento div de HTML, se muestra de manera condicionada utilizando la propiedad de rendered. Si la condición resulta verdadera el elemento se muestra. En el ejemplo se utilizan los operadores ne, empty, and y de negación para controlar esta lógica. Este es un ejemplo muy práctico que podemos adoptar para mostrar elementos de manera condicional en las páginas JSF. 12

13