Está en la página 1de 7

Que es JSF Java Server Faces es un framework de trabajo para el desarrollo de aplicaciones web dinmicas basadas en Java y en el patron

MVC(modelo vista controlador!" #os principales componentes de la


tecnolo$%a JavaServer Faces son&

'n ()* y una implementaci+n de referencia para& representar componentes '* y manejar su estado, manejo de eventos validaci+n del lado del servidor y conversi+n de datos, definir la nave$aci+n entre p$inas, soportar internacionali-aci+n y accesibilidad, y proporcionar e.tensibilidad para todas estas caracter%sticas"

'na librer%a de eti/uetas JavaServer )a$es (JS)! personali-adas para dibujar componentes '* dentro de una p$ina JS)"

0ste modelo de pro$ramaci+n bien definido y la librer%a de eti/uetas para componentes '* facilitan de forma si$nificativa la tarea de la construcci+n y mantenimiento de aplicaciones 1eb con '*s del lado del servidor" El cdigo JSF con el que creamos las vistas (etiquetas jsp) es muy parecido al HTML

est ndar! Lo pueden utili"ar # cilmente desarrolladores y dise$adores %e&!

(l$unos de las beneficios /ue nos ofrece esta tecnolo$ia son& 2ratar el desarrollo de interfa-es de usuario de una forma similar a Swin$ Visual 3asic o 4elp5i donde la pro$ramaci+n del interfa- se 5acer a trav6s de componentes y basada en eventos"
JSF es muy fle.ible" )or ejemplo nos permite crear nuestros propios componentes o crear nuestros propios render para pintar los componentes se$7n nos conven$a" #a tecnolo$%a JavaServer Faces permite construir aplicaciones web /ue introducen realmente una separaci+n entre el comportamiento y la presentaci+n permitiendo a cada miembro del e/uipo de desarrollo de una aplicaci+n 1eb enfocarse en su parte del proceso de desarrollo

8Confi$uracion de los bens en jsf #os beans son clases java /ue se asocian a los JSF para poder permitir separar la presentacion y la lo$ica de ne$ocio en el desarrollo de una aplicacion web, pueden ser confi$urados y manipulados sin pro$ramar a trav6s de entornos de trabajo (frameworks! o entornos de desarrollo inte$rados" Se referencian en el fic5ero de confi$uracion de JSF en el apartado de mana$ed beans"
#a confi$uraci+n de los beans establece el nombre con el /ue se invocan sus acciones en las p$inas jsp y la ruta completa del pa/uete en el /ue se encuentra la clase /ue representa el backin$ bean"

Vamos a describir como confi$urar un bean mediante un arc5ivo de confi$uraci+n" #os detalles son mas bien t6cnicos" 0l arc5ivo de confi$uraci+n ms com7nmente usado es 1038*9F:faces8confi$".ml"

'n bean se define con una eti/ueta mana$ed8bean al comien-o del fic5ero faces8confi$".ml" 3sicamente se debe especificar nombre del bean con la eti/ueta

;mana$ed8bean8name<Ser necesario a=adir un blo/ue ;mana$ed8bean< por cada bean /ue se /uiera
sea $estionado por el framework" 9ombre cualificado de la clase a la /ue pertenece el bean" ;mana$edbean8class<

mbito del bean siendo sus posibles valores& re/uest session y application(peticion sesion aplicacion! con la eti/ueta ;mana$ed8bean8scope< por ejemplo para definir un bean llamado usuario /ue est en la clase 'suario3ean y con un mbito de sesi+n ser%a& ;mana$ed8bean< ;mana$ed8bean8name<usuario;:mana$ed8bean8name< ;mana$ed8bean8class<'suario3ean;:mana$ed8bean8class< ;mana$ed8bean8scope<session;:mana$ed8bean8scope< ;:mana$ed8bean<

8confi$uracion para nave$acion en jsf" 0l desarrollador de la aplicaci+n define la nave$aci+n por la aplicaci+n mediante el fic5ero de confi$uraci+n faces8confi$".ml el mismo fic5ero en el /ue se declararon los mana$ed beans " Cada re$la de nave$aci+n define c+mo ir de una p$ina (especificada en el elemento from8view8id! a otras p$inas de la aplicaci+n" 0l elemento navi$ation8rule puede contener cual/uier n7mero de elemento navi$ation8case cada uno de los cuales define la p$ina /ue se abrir lue$o (definida por to8view8id! basndose en una salida l+$ica (definida mediante from8outcome!" #a salida se puede definir mediante el atributo action del componente '*Command /ue env%a el formulario" (5ora vamos con las re$las de nave$aci+n de esta manera indicamos a /ue p$ina ir tras otra p$ina" 0n este caso la nave$aci+n es simple tras pulsar el bot+n (ceptar nave$amos desde inde."jsp 5asta 5ola"jsp" 0stas re$las de nave$aci+n se especifican en el fic5ero faces8confi$".ml como se muestra a continuaci+n& ;faces8confi$< ;navi$ation8rule< ;from8view8id<:inde."jsp;:from8view8id< ;navi$ation8case< ;from 8outcom e<lo$in;:from8outcome< ;to8view8id<:5ola"jsp;:to8view8id< ;:navi$ation8case< ;:navi$ation8rule< ;mana$ed8bean< ;mana$ed8bean8name<usuario;:mana$ed8bean8name<

;mana$ed8bean8class<'suario3ean;:mana$ed8bean8class< ;mana$ed8bean8scope<session;:mana$ed8bean8scope< ;:mana$ed8bean< ;:faces8confi$< 0l valor de from8outcome (lo$in! indica la acci+n /ue se debe producir en la p$ina from8view8id (inde."jsp! para nave$ar al destino representado por to8view8id (5ola"jsp!" #a acci+n es un mero nombrecito /ue se da a los botones de un formulario, en nuestro caso la p$ina inde."jsp inclu%a la eti/ueta& ;5&command3utton value>?(ceptar? action>?lo$in?:< 80ti/uetas jsf JSf dispone de un conjunto bsico de eti/uetas /ue permiten crear fcilmente componentes dinmicos en las p$inas web" 0stas eti/uetas son&

'(command)utton! *n &otn al que podemos asociar una accin! '(commandLin+! *n enlace 'iperte,to al que podemos asociar una accin!

'(dataTa&le! -rea una ta&la de datos din mica con los elementos de una propiedad de tipo .rray o Map del &ean! '(#orm! /e#ine el #ormulario JSF en la p gina JS01 '(grap'ic2mage! Muestra una imagen jpg o similar! '(inputHidden! 2ncluye un campo oculto del #ormulario! '(inputSecret ! 2ncluye un campo edita&le de tipo contrase$a (no muestra lo que se escri&e) '(inputTe,t! 2ncluye un campo de te,to normal! '(inputTe,tarea! 2ncluye un campo de te,to multil3nea! '(message! 2mprime un mensaje de error en la p gina (si se 'a producido alguno)! '(messages! 2mprime varios mensajes de error en la p gina4 si se 'an producido!

'(outputFormat! Muestra te,to parametri"ado! *tili"a la clase java!te,t!MessageFormat de #ormateo! '(outputLa&el! Muestra un te,to #ijo! '(outputLin+! -rea un enlace 'iperte,to! '(outputTe,t '(panel5rid! -rea una ta&la con los componentes incluidos en el panel5rid!

'(panel5roup! .grupa varios componentes para que cierto componente los trate como un 6nico componente (por ejemplo para meter varios componentes en una celda de un panel5rid! '(select)oolean-'ec+&o,! -rea una casilla con dos estados( activado y desactivado! '(selectMany-'ec+&o,! -rea un conjunto de casillas activa&les! '(selectManyList&o,! -rea una lista que permite seleccionar m6ltiples elementos! '(selectManyMenu! -rea una lista desplega&le de seleccin m6ltiple!

'(select7neList&o,! -rea una lista en la que se puede seleccionar un 6nico elemento! '(select7neMenu! -rea na lista desplega&le de seleccin! '(select7ne8adio! -rea una lista de &otones4 redondos normalmente4 e,cluyentes!

8Conversores en jsf

*na de las muc'os mecanismos que nos proporciona JSF de #orma autom tica para el desarrollador es el de la conversion! La conversin es el proceso a travs del cual se transforman los datos ingresados por el usuario en la forma Web en los tipos de datos que mapean en sus correspondientes variables de su bean. Es decir, los datos que proporciona el usuario, manejados como cadenas de texto, se transforman en int, Date o segn sea el tipo de dato que se a definido para cada uno de ellos en el bean especificado, ! asi mismo volver a convertir a cadena en caso de que se quiere extraer informacion previamente !a guardada. JSF invoca a losConversores antes de e#ectuar las validaciones y por lo tanto antes de aplicar los valores introducidos a las propiedades del &ean! En el caso de que un dato tipo cadena no se corresponda con el tipo J.9. apropiado4 el Conversor correspondiente lan"ar un ConversionException y el componente se marcar como invalidado! "#$ nos proporciona los siguientes conversores% &igDecimal'onverter, &ig(nteger'onverter, )umber'onverter,(nteger'onverter, # ort'onverter,&!te'onverter,' aracter'onverter, $loat'onverter,Double'onverter,&oolean'onverter,Date*ime'onverter +ara acer uso de los conversores usaremos el ,tributo o +ropiedad converter o el *ag f%converter
8validadores en jsf

El proceso de validacin se asegura que el dato introducido en el correspondiente componente es correcto seg6n la lgica de la aplicacin4 de acuerdo a ciertas reglas especi#icadas para cada uno de estos4 como pueden ser la longitud m3nima y m ,ima para un campo !El proceso de validacin ocurre antes de que el Frame:or+ asigne los valores introducidos en el #ormulario a las propiedades del &ean y justo despu;s de que se 'ayan aplicado las conversiones4 en el caso de que 'aya! Las validaciones aseguran que un dato introducido en un formulario JSF tenga un valor correcto, cada componente JSF que reci&a datos de entrada puede tener asociado < o m s validadores

0odr3amos agrupar las validaciones de (JSF4 ./F )-) en cuatro tipos &ien di#erenciados( 1 9alidaciones est ndar( Este tipo de validaciones son las mas & sicas4 y se reali"an a nivel de vie%4 en el jsp! Ejemplos de este tipo de validaciones son compro&ar que un valor este entre un determinado rango4 compro&ar la longitud del valor introducido4 etc! 1 9alidaciones en el &ac+ing &ean( Este tipo de validaciones suelen ser un poco m s complejas que las anteriores! = al reali"arse en el &ac+ing pueden tratarse de validaciones m6ltiples que tengan en cuenta valores de otros campos del #ormulario! 1 9alidaciones en la capa de negocio4 a nivel de aplicacin( Este tipo de validaciones tratan de validar un proceso de nuestra aplicacin4 se trata de validar el proceso que se reali"ar al rellenar el #ormulario! Es decir4 en este tipo de validaciones mas que validar que los datos introducidos sean correctos4 lo que se comprue&a es que se pueda 'acer una determinada tarea con esos datos! 1 9alidaciones con nuestro propio 9alidator( Este tipo de validadores es #recuente usarlos cuando tenemos un tipo de campo que 'ay que validar y que se repite con #recuencia en di#erentes #ormularios de nuestra aplicacin4 como podr3a ser validar un >2F o un n6mero de cuenta &ancaria4 etc!
8ciclo de vida en jsf <! 8estore vie%(8estaurar los componentes de la vista)( En esta etapa el controlador construye en memoria la estructra de componentes de la pagina ?! .pply request values(.plicar los valores de peticion)( Se leen los valores de la request(o&jeto implincito que permite reali"ar peticiones con par metros) y se aplican so&re los componentes! En este momento es cuando se llama a los converters! Si 'ay alg6n error en la conversin se ir directamente a la #ase @render responseA! Si un componente tiene @immediateBtrueA su validacin (y el procesamiento de los eventos provocados por esa validacin) se 'ar en esta #ase ! C! 0rocess validations(0rocesamiento de las validaciones)( se validan todos los componentes (todos los que tienen @immediateB#alseA4 ya que los que lo tienen a true ya se validaron en la #ase anterior)! Si #alla alguna de las validaciones se ir directamente a la #ase @render responseA! D! *pdate model values(.ctuali"ar los valores del modelo)( Los valores leidos y validados son cargados en los &eans! E! 2nvo+e application(2nvocacion a la aplicacion)( Se invoca a los m;todos de los &eans de la pagina! Si es necesario se reali"a la navegacion F! 8ender response(5eneracion de la p gina)( En esta #ase se genera la pagina que sera enviada al usuario con todos sus elementos y valores actuali"ados!

8scope o ambito de los objetos

0stos mbitos normalmente mantienen beans y otros objetos /ue necesitan estar disponibles en diferentes componentes de una aplicaci+n web"

@mbito de tipo petici+n& 0s el de vida ms corta" 0mpie-a cuando una petici+n A22) comien-a a tramitarse y acaba cuando la respuesta se env%a al cliente" )or ejemplo el la si$uiente l%nea de c+di$o& ;f&load3undle basename>?mensajes? var>?msjs?:< la eti/ueta f&load3undle 5ace /ue la variable bundle solo e.ista mientras dura la petici+n" 'n objeto debe tener un mbito de este tipo s+lo si lo /ue se /uiere es reenviarlo a otra fase de procesado" @mbito de tipo sesi+n& 0l nave$ador env%a una petici+n al servidor el servidor devuelve una respuesta y entonces ni el nave$ador ni el servidor tiene cual/uier obli$aci+n para conservar cual/uier memoria de la transacci+n" 0ste acomodamiento simple marc5a bien para recuperar informaci+n bsica pero es poco satisfactorio para aplicaciones del lado del servidor" #a sesi+n el rastreo con cookies es completamente transparente al desarrollador web y las eti/uetas estndar JSF automticamente reescriben 'B# si un cliente no usa cookies" 0l mbito de sesi+n permanece desde /ue la sesi+n es establecida 5asta /ue esta termina" 'na sesi+n termina si la aplicaci+n web invoca el m6todo invalidate en el objeto AttpSession o si su tiempo e.pira" #as aplicaciones 1eb t%picamente colocan la mayor parte de sus bean dentro de un mbito de sesi+n" @mbito de tipo aplicaci+n& )ersiste durante toda la aplicaci+n web" 0ste mbito compartido entre todas las peticiones y sesiones" 8Cestion de usuarios en jsf

3*3#*DCB(F*( 5ttp&::www"adictosaltrabajo"com:tutoriales:tutoriales"p5pEpa$ina>convValidJSF 5ttp&::www"adictosaltrabajo"com:tutoriales:tutoriales"p5pE pa$ina>*ntroduccionJSFJavaFG2ocHHIJHHKL

También podría gustarte

  • Agentes Sociales
    Agentes Sociales
    Documento12 páginas
    Agentes Sociales
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Agentes Sociales
    Agentes Sociales
    Documento12 páginas
    Agentes Sociales
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Principios Auditor Grafo
    Principios Auditor Grafo
    Documento3 páginas
    Principios Auditor Grafo
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Uptime y Empresas de Giras
    Uptime y Empresas de Giras
    Documento5 páginas
    Uptime y Empresas de Giras
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Principios Auditor Grafo
    Principios Auditor Grafo
    Documento3 páginas
    Principios Auditor Grafo
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Reseña Futbol
    Reseña Futbol
    Documento5 páginas
    Reseña Futbol
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Arbol de Decision
    Arbol de Decision
    Documento1 página
    Arbol de Decision
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Ejercicios - Subneting
    Ejercicios - Subneting
    Documento17 páginas
    Ejercicios - Subneting
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Tabulación de Clientes
    Tabulación de Clientes
    Documento13 páginas
    Tabulación de Clientes
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Exposicion OPSF
    Exposicion OPSF
    Documento9 páginas
    Exposicion OPSF
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • JSF
    JSF
    Documento7 páginas
    JSF
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Organico Funcional Departamento Administrativo
    Organico Funcional Departamento Administrativo
    Documento3 páginas
    Organico Funcional Departamento Administrativo
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Infracciones Informaticas
    Infracciones Informaticas
    Documento10 páginas
    Infracciones Informaticas
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Protocol Os
    Protocol Os
    Documento4 páginas
    Protocol Os
    Priscila Morocho
    Aún no hay calificaciones
  • Consultas Base de Datos
    Consultas Base de Datos
    Documento14 páginas
    Consultas Base de Datos
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Geren Te
    Geren Te
    Documento1 página
    Geren Te
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Proceso de Control
    Proceso de Control
    Documento10 páginas
    Proceso de Control
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Principios_planificación_empresa
    Principios_planificación_empresa
    Documento1 página
    Principios_planificación_empresa
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • JSF
    JSF
    Documento7 páginas
    JSF
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • BD Proyectos
    BD Proyectos
    Documento1 página
    BD Proyectos
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Documento de Entrevistas
    Documento de Entrevistas
    Documento12 páginas
    Documento de Entrevistas
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Resumen de Unidad
    Resumen de Unidad
    Documento7 páginas
    Resumen de Unidad
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Tiempos en Disco
    Tiempos en Disco
    Documento1 página
    Tiempos en Disco
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Consultas Base de Datos
    Consultas Base de Datos
    Documento7 páginas
    Consultas Base de Datos
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Banco de Preguntas Resueltas Final
    Banco de Preguntas Resueltas Final
    Documento16 páginas
    Banco de Preguntas Resueltas Final
    Juan Carlos Gonzalez Ortiz
    100% (1)
  • Vista de Despliegue
    Vista de Despliegue
    Documento16 páginas
    Vista de Despliegue
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Economia
    Economia
    Documento3 páginas
    Economia
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones
  • Contrato Colectivo de La Unl
    Contrato Colectivo de La Unl
    Documento1 página
    Contrato Colectivo de La Unl
    Juan Carlos Gonzalez Ortiz
    Aún no hay calificaciones