Home
        JavaServer Faces(JSF)
         Contents
1.    viendo en los ejemplos  FacesUtil  de cualquier manera ser  a     FacesContext getCurrentInstance    getExternalContext     getSessionMap     get  key    FacesContext  getCurrentInstance     getExternalContext     getSessionMap     put  key  value    Uso de datatable    Las tablas din  micas que se pueden mostrar con el tag h dataTable reciben un objeto de tipo List o DataModel  con una colecci  n de beans o pojos  o un mapa de objetos que los contiene     Por ejemplo para una tabla que contenga tres campos  ID  Nombre y Valor  Se crear  a una clase wrapper que  represente cada fila de la tabla  una clase simple con los campos privados que se accedan con los m  todos  p  blicos getters y setters  Como los datos de la bbdd pueden ser nulos se evita utilizar tipos de datos primitivos     Se puede usar el tag h commandLink o h commandButton en una o m  s columnas para llamar a un action de  MiBean java y pasarle el objeto MiData apropiado  esto es m  s r  pido que pasarlo con el tag f attribute con un  ID para obtener el elemento seleccionado directamente de la base de datos  Para conocer la fila seleccionada  se usa el binding de h dataTable para din  micamente sincronizar el estado de la tabla con el backing bean     Page 14   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     Se muestra un ejemplo      lt h  form gt    lt h dataTable  value        myBean myDataList      var      myDataltem   binding      myBean myDataTable   gt    lt h column gt      lt f facet n
2.   Shale proporcionan esta posibilidad     Relaci  n con otros subsistemas    JSF es una especificaci  n y como tal no tiene ninguna incompatibilidad con otros sistemas  Por ello  se pueden  escoger los desarrollos que se desean para las necesidades de cada uno  el de jakarta  el de sun   el de  oracle  o incluso el de IBM  Habr  a que estudiar cada uno de estos desarrollos para saber cu  les son las  incompatibilidades que cada uno hace constar     Limitaciones que impone la especificaci  n    e Todo desarrollo de esta especificaci  n tiene que soportar JSP como tecnolog  a de vista  Pero JSF  no obliga a que esta sea la opci  n por defecto  De hecho hay otros proyectos de c  digo abierto  que proporcionan la posibilidad de escribir la capa cliente sin usar JSP  como son Facelets y Clay   Concretamente  con Facelets podr  amos escribir toda esta capa en HTML    e El hecho de que JSP sea una tecnolog  a obligatoria  hace que podamos seguir desarrollando con las  etiquetas JSP con las que estemos m  s acostumbrados  como pueda ser JSTL    e Puede coexistir con Struts en una misma aplicaci  n web  Esto lo hace especialmente importante para las  aplicaciones ya escritas en Struts que quieran ir migrando poco a poco a JSF  Se puede cambiar unas  pocas p  ginas y ver los cambios de manera paulatina  Haciendo  por lo tanto  muy suave la transici  n     Modo de empleo de JSF    Para el caso de utilizaci  n e instalaci  n de JSF se har   uso del proyecto de Apache  MyFaces   Para ello
3.  faces config xml    WEB INF admin faces config  xml   lt  param value gt    lt description gt   Ficheros de definicion   lt  description gt    lt  context param gt    lt context param gt    lt param name gt com sun faces validateXml lt  param name gt     param value         true   param value      description    Set    this flag to  true    if you want the JavaServer Faces  Reference Implementation to validate the XML in your  faces config xml resources against the DID  Default  value is    false      description     lt  context param gt    lt context param gt     param name  com sun faces verifyObjects   param name      param value      true   param value      description    Set  this flag to  true  if you want the JavaServer Faces    Reference Implementation to verify that all of the application  objects you have configured  components  converters     Page 24   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     renderers  and validators  can be successfully created     Default value is    false    lt  description gt    lt  context param gt     Una vez que se configura el fichero web xml las p  ginas xhtml se desarrollar  n atendiendo a a las librer  as    incorporadas      lt html xmlns      http    www w3 org 1999 xhtml   xmlns ui      http   java sun com js   facelets   xmlns h      http   java sun com jsf html   xmlns f      http   java sun com jsf core   xmlns v      http   www viavansi com jsf custom   xmlns t      http   myfaces apache org tomahawk   xmlns 
4.  inputhidden para guardar el objeto      lt h  form gt    pins value    f miBean value        SIS Forno    Tambien se puede utilizar un RequestMap para pasar objetos al siguiente request  teniendo en cuenta que  ser  n  limpiados  despu  s de un request     Page 12   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     package es juntadeandalucia cice util   import javax faces context FacesContext     public class FacesUtil      public   static   Object getRequestMapValue  FacesContext context    String key      return context getExternalContext     getRequestMap     get  key        public   static void setRequestMapValue  FacesContext context    String key     Object value     context  getExternalContext     getRequestMap     put  key  value      Otra manera es utilizar un SessionMap para mantener los valores que deben ser guardados durante la sesi  n  del usuario     package es juntadeandalucia cice util   import javax faces context FacesContext     public class FacesUtil      public       static   Object getSessionMapValue  FacesContext context    String key      return context  getExternalContext     getSessionMap     get  key        public   static void setSessionMapValue  FacesContext context    String key     Object value  1  context  getExternalContext     getSessionMap     put  key  value      public    Page 13   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     static  Object removeSessionMapValue  FacesContext context     String key       return 
5.  java net  https   jsf extensions dev java net nonav mvn  Este proyecto almacena el desarrollo  de software para extender las capacidades de la especificaci  n JSF  El software de este proyecto est   pensado  para que funcione en cualquier implementaci  n que cumple la especificaci  n JSF  aunque seg  n la p  gina  oficial las capacidades se mejoran cuando se ejecuta con la implementaci  n de SUN  Este proyecto est    dividido en tres  pudiendo trabajar de forma conjunta o por separado  La separaci  n es en funci  n del ciclo de  vida del desarrollo  run time  test time y design time        Ajax4jsf    Fue desarrollado por java net y patrocinado por Exadel  A partir del 05 03 2007 Exadel y Red Hat decidieron  colaborar en el desarrollo de esta y otras tecnologias  La pagina oficial del proyecto se ha movido a   http   labs jboss com jbossajax4jsf  Actualmente el proyecto se encuentra dentro del proyecto RichFaces   Ajax4JSF es una extensi  n opensource para el est  ndar JSF que a  ade capacidades AJAX a las aplicaciones  JSF sin la necesidad de escribir c  digo Javascript  RichFaces es una librer  a de componentes para JSF  construida sobre Ajax4jsf  Permite una integraci  n f  cil de capacidades AJAX en el desarrollo de aplicaciones       Page 4   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     de negocio  RichFaces mejora el framework Ajax4jsf de dos formas importantes  Primero  aumenta el n  mero  de componentes visuales listos para usar  En segundo lugar  imp
6.  las 12 03    MADEJA   JavaServer Faces  JSF     import javax faces event PhaseId   import javax faces event PhaseListener   public class LifeCycleListener    implements PhaseListener         public void beforePhase  PhaseEvent event       System out println      Fase Anterior      event getPhaseId             public void afterPhase  PhaseEvent event       System out println      Fase Posterior      event getPhaseld             public Phaseld getPhaseld        return PhaseId ANY PHASE           Se agrega al fichero faces config xml     lt lifecycle gt     phase listener  mypackage LifeCycleListener   phase listener       lifecycle      Obteniendo por resultado la siguiente salida    Fase Anterior  RESTORE VIEW 1   Fase Posterior  RESTORE_VIEW 1   Fase Anterior  APPLY REQUEST VALUES 2  Fase Posterior  APPLY REQUEST VALUES 2  Fase Anterior  PROCESS VALIDATIONS 3  Fase Posterior  PROCESS VALIDATIONS 3  Fase Anterior  UPDATE MODEL VALUES 4  Fase Posterior  UPDATE MODEL VALUES 4  Fase Anterior  INVOKE APPLICATION 5  Fase Posterior  INVOKE APPLICATION 5  Fase Anterior  RENDER RESPONSE 6   Fase Posterior  RENDER RESPONSE 6       Mensajes de error    En JSF  se pueden configurar paquetes de recursos y personalizar los mensajes de error para convertidores y    validadores  El paquete de recursos se configura dentro de faces config xml      lt message bundle gt catalog view bundle Messages lt  message bundle gt     Las parejas clave valor de los mensajes de error se a  aden al fichero 
7.  lt servlet mapping gt    lt servlet name gt Faces Servlet lt  servlet name gt     url pattern      jsf   url pattern       servlet mapping          Welcome files    gt     welcome file list      welcome file  index jsp   welcome file       welcome file list       web app      En cuanto a las posibles etiquetas jsf disponibles y su funcionalidad puede verse el documento Componentes  JSF pdf que se encuentra en el repositorio     Enlaces de inter  s de JSF    Page 10   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     e P  gina oficial de Myfaces    ADF Faces Components  e Framework AME de Endesa             Recomendaciones de uso    Paso de par  metros a los actions    Con los tags h commandLink y h commandButton se puede invocar un m  todo del backing bean utilizando el  atributo action o actionListener  pero no se le puede pasar un parametro directamente por lo que el tag f attribute  puede resultar   til us  ndolo junto con el actionListener  un ejemplo      lt h  form gt     h commandLink actionListener        miBean action   gt    lt f attribute name      nombreAtributol  value      valorAtributol    gt    lt f attribute name      nombreAtributo2  value    valorAtributo2    gt    lt h outputText value    De click aqui    gt    lt  h commandLink gt    lt h commandButton value      Click  actionListener        miBean action   gt    lt f attribute name      nombreAtributol  value      valorAtributol    gt    lt f attribute name      nombreAtributo2  value    valo
8.  ser   necesario descargar las librer  as correspondientes de JSF que se encuentran en  http   myfaces apache org binary cgi         Page 6   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     Una vez descargado  se extraen las librer  as necesarias incorpor  ndolas dentro de las librer  as del nuevo  proyecto  quedando una estructura similar a la que se muestra en la figura 1     e Jakarta Commons BeanUtils  Version 1 6   e Jakarta Commons Collections  Version 3 0     Jakarta Commons Digester  Version 1 5      Jakarta Commons Logging  Version 1 0 4     Los siguientes son obligatorios si se tiene pensado usar componentes tomahawk     e Jakarta Commons Codec  Version 1 2     Jakarta Commons FileUpload  Version 1 0     Page 7   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF         _ Navigator x  e    amp  veo    X Bist   gt     deployables     JavaSource  v     WebCortent   gt      META INF  Y    VWEB INF  v  stilo     commons beanutils 1 6 1 jar  E  commons codec 1  2 jar     commons collections 3 0 jar       ll    E  commons digester 1  5 jar       commons el jar    Hi    iny    commons fileupload 1  0 jar    Hi    commons logging jar    an       commons validator jar    li       jakarta oro jar    iny    jsp 2 0 jar  2  jstl jar    lij    IHY       myfaces jar    ii     myfaces extensions jar     myfaces impl jar    il      u    myfaces jsf api jar    myfaces wap jar     myfaces xdoclet jar  IX  web xml   X  classpath   IX project     runtime  IX  wtpmod
9. F no sea tan rapida como pueda ser la de otros  entornos como WebWork  Wicket  Spring   etc     Distintas implementaciones de JSF    Actualmente existen muchas librer  as de etiquetas JSF que pueden complementar a la implementaci  n de la  especificaci  n oficial  La elecci  n no tiene porqu   cerrarse sobre una de ellas sino que pueden combinarse  seg  n interese     MyFaces Tomahawk    Desarrollado por Apache  http   myfaces apache org tomahawk  Este conjunto de componentes tambi  n es  compatible con la implementaci  n de SUN  as   como con cualquier implementaci  n compatible con JSF 1 1   Pueden verse los distintos componentes de MyFaces Tomahawk en el siguiente enlace          http  www irian at myfaces        Adem  s pueden consultarse las principales caracter  sticas del proyecto Tomahawk en la siguiente direcci  n  web     e http   www marinschek com myfaces tiki tiki index php page Features       Page 3   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     MyFaces Sandbox       Desarrollado por Apache  http   myfaces apache org sandbox  Sandbox es un subproyecto de MyFaces que  sirve como base de pruebas para las nuevas incorporaciones al proyecto de Tomahawk  Consiste sobre todo  en componentes  pero como el proyecto de Tomahawk  puede tambi  n contener otras utilidades para JSF  Los  distintos componentes pueden consultarse en el siguiente enlace     e http  www irian at myfaces sandbox        ICEfaces    Desarrollado por ICEsoft  http   www icesoft com p
10. MADEJA   JavaServer Faces  JSF     JavaServer Faces JSF     La tecnolog  a JavaServer Faces es un framework de interfaz de componentes de usuarios del lado del servidor  para las aplicaciones web basadas en la tecnolog  a Java  Los principales componentes de la tecnolog  a JSF  son        Una API para Representar componentes de Interfaz de Usuario  Ul  y gestionar su estado    gt  Manejar eventos  validar en el servidor y conversi  n de datos    gt  Definir la navegaci  n de p  ginas    gt  Soporte de internacionalizaci  n y accesibilidad   e Dos librer  as de etiquetas JSP personalizadas para expresar componentes en una p  gina JSP y enlazar  los componentes a objetos del servidor     El modelo de programaci  n bien definido y las librer  as de etiquetas facilitan la construcci  n y mantenimiento de  las aplicaciones web con Interfaces de Usuario  Ul  de servidor  Con un m  nimo esfuerzo se podr  a     e Poner componentes en una p  gina mediante etiquetas de componentes      Enlazar eventos generados por componentes con c  digo de la aplicaci  n en el servidor   e Relacionar componentes Ul en una p  gina con datos del servidor    e Construir una Ul con componentes reutilizables y extensibles    e Salvar y restaurar el estado de la Ul m  s alla de la vida de las peticiones     JSF es una especificaci  n desarrollada por la Java Community Process  Actualmente existen tres versiones de  esta especificaci  n     e JSF 1 0  11 03 2004   e JSF 1 1  27 05 2004     Especificaci  n J
11. Message properties      conversion error messages    javax faces component UIInput CONVERSION Input data is not in the correct type     Page 18   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF      validation error messages  javax faces component UIInput REQUIRED Required value is missing     Recomendaciones de dise  o    Beans    JSF presenta dos nuevos t  rminos     e managed bean  objeto manejado   Un managed bean describe c  mo se crea y se maneja un bean  No  tiene nada que ver con las funcionalidades del bean    e backing bean  objeto de respaldo   El backing bean define las propiedades y la l  gica de manejo  asociadas con los componentes UI utilizados en la pagina  Cada propiedad del bean de respaldo esta  unida a un ejemplar de un componente o a su valor  Un backing bean tambi  n define un conjunto de  m  todos que realizan funciones para el componente  como validar los datos del componente  manejar los  eventos que dispara el componente y realizar el procesamiento asociado con la navegaci  n cuando el  componente se activa     Una t  pica aplicaci  n JSF acopla un backing bean con cada p  gina de la aplicaci  n  Sin embargo  algunas  veces en el mundo real de nuestras aplicaciones  forzar una relaci  n uno a uno entre el backing bean y la  p  gina no es la soluci  n ideal  Puede causar problemas como la duplicaci  n de c  digo  En el escenario real   varias p  ginas podr  an necesitar compartir el mismo backing bean tras bambalinas     En comparaci  n con 
12. SP    e Los oyentes de eventos  validadores  y los conversores que est  n registrados en los componentes    e Los objetos del modelo que encapsulan los datos y las funcionalidades de los componentes espec  ficos de  la aplicaci  n     Page 2   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     Ventajas e inconvenientes de JSF    Existen numerosas ventajas que hacen que JSF sea una tecnolog  a apropiada para el desarrollo de  aplicaciones web     e Una de las grandes ventajas de la tecnolog  a JavaServer Faces es que ofrece una clara separaci  n entre  el comportamiento y la presentaci  n  Las aplicaciones Web construidas con tecnolog  a JSP consegu  an  parcialmente esta separaci  n  Sin embargo  una aplicaci  n JSP no puede mapear peticiones HTTP al  manejo de eventos espec  ficos del componentes o manejar elementos Ul como objetos con estado en el  servidor       La tecnologia JavaServer Faces permite construir aplicaciones Web que implementan una separaci  n  entre el comportamiento y la presentaci  n tradicionalmente ofrecidas por arquitectura Ul del lado del  cliente  JSF se hace f  cil de usar al aislar al desarrollador del API de Servlet    e La separaci  n de la l  gica de la presentaci  n tambi  n le 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    e Otro objetivo importante de la tecnologia JavaServer F
13. SR 127  http   jcp org en jsr detail id 127  e JSF 1 2  11 05 2006     Especificaci  n JSR 252  http   jcp org en jsr detail  id 252  Hoy en d  a se encuentran disponibles varias implementaciones de JSF  sin embargo la m  s extendida es    Apache MyFaces    sta es la implementaci  n m  s usada  Actualmente implementa la versi  n 1 2 de la  especificaci  n JSF           Por hacer un resumen  JSF proporciona     Una clara separaci  n entre vista y modelo    Desarrollo basado en componente  no en peticiones    Las acciones del usuario se ligan muy f  cilmente al c  digo en el servidor   Creaci  n de familias de componentes visuales para acelerar el desarrollo   Ofrece m  ltiples posibilidades de elecci  n entre distintos desarrollos     PUBIS    Esta ficha presenta el contenido acerca de JSF  se muestran a continuaci  n enlaces directos a distintos  aspectos     e Caracter  sticas   e Ventajas e Inconvenientes   e Implementaciones   e Requisitos e incompatibilidades  e Relaci  n con otros sistemas   e Modo de empleo   e Enlaces de inter  s     Recomendaciones de uso   e Buenas pr  cticas   e Aplicaciones de ejemplo                         Page 1   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     Caracter  sticas    Los principales componentes de la tecnolog  a JavaServer Faces son       Un API y una implementaci  n de referencia para  representar componentes Ul y manejar su estado   manejo de eventos  validaci  n del lado del servidor y conversi  n de datos  definir 
14. a 1  lt  Atr  s   1 2 3 4   Adelante  gt      La paginaci  n debe hacerse desde back end es decir desde las consultas a la base de datos si la cantidad de  registros es muy grande y no s  lo a nivel front end  En el caso de displaytag es recomendable utilizarlo cuando  las colecciones de objetos son peque  as ya que sube a sesi  n toda la colecci  n para despu  s manipularla     Buenas pr  cticas    Estructura y dise  o  La estructura de directorios est  ndar de una aplicaci  n JSF es la siguiente     proyect MyApp MM   kvare NA     YourBeans java      web AM     YourJSP pages jsp        AnyImages gif AN   WEB INF          gt web xml AN     faces config xml    Donde en el directorio   src   se sit  an los beans de la aplicaci  n  en   web   todas las p  ginas jsp 6 html   as   como las im  genes y dem  s archivos necesarios para la aplicaci  n  y en   WEB INF   los ficheros de  configuraci  n como el fichero descriptor de despliegue  web xml  y el de configuraci  n JSF  faces config xml      Codificaci  n    En cuanto a la importaci  n de librer  as  se debe usar el prefijo   f   para hacer referencia a etiquetas del n  cleo  de la implementaci  n mientras que el prefijo   h   para hacer referencia a etiquetas de componentes HTML      lt    taglib uri    http   java sun com js   html  prefix      h  g gt    lt    taglib uri      http   java sun com jsf core  prefix      fn o gt     Page 21   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     Respecto a los validador
15. a4j     https   ajax4jsf dev  java net ajax   xmlns c        http    java sun com jstl core       En este caso extra  do de la p  gina index xhtml del directorio web  admin actualizaci  n se hace referencia a las  librer  as de tomahawk y myFaces que ser  n utilizadas a trav  s de etiquetas JSTL  Adem  s  se utilizan tags  propios definidos por el usuario a trav  s de la etiqueta  v    De esta manera  la p  gina quedar  a estructurada    como sigue    lt ui composition template       includes   skin  template xhtml       ui define name      title  gt Actualizaci  3n Masiva de Modelos lt  ui define gt       ui define name      head  gt    lt v script js      embedded  jquery highlightFade  forms help    lt  ui define gt      lt ui define name      header  gt      lt h2 gt Actualizaci  3n Masiva de Modelos lt  h2 gt      lt  ui define gt    lt ui define name      body  gt         enctype      multipart form data     gt    lt v form id      formularioModelos       t htmlTag value     Page 25   10 03 2009 a las 12 03    search loading     tables       gt     MADEJA   JavaServer Faces  JSF      div  styleClass    mensajes error  rendered      not empty requestScope resultadoUpdate   gt     lt ul gt  lt li gt      lt span class      error  gt   resultadoUpdate  lt  span gt      lt  li gt  lt  ul gt    lt  t htmlTag gt    lt p gt   Este proceso actualizar  j el modelo de todos los  Posteriormente  eliminar    el modelo original    lt br  gt   La principal utilidad consiste en fusion
16. aces es mejorar los conceptos familiares  Disadvantage de componente Ul y capa Web sin limitar a una tecnolog  a de script particular o un lenguaje  de marcas  Aunque la tecnolog  a JavaServer Faces incluye una librer  a de etiquetas JSP personalizadas  para representar componentes en una p  gina JSP  los APIs de la tecnologia JavaServer Faces se han  creado directamente sobre el API JavaServlet  Esto permite hacer algunas cosas  usar otra tecnolog  a  de presentaci  n junto a JSP  crear componentes propios personalizados directamente desde las clases  de componentes  y generar salida para diferentes dispositivos cliente  As    se podr  n encapsular  otras tecnolog  as como Ajax en componentes JSF  haciendo su uso m  s f  cil y productivo  al aislar al  programador de ellas    e JavaServer Faces ofrece una gran cantidad de componentes opensource para las funcionalidades que  se necesiten  Los componentes Tomahawk de MyFaces y ADFFaces de Oracle son un ejemplo  Adem  s   tambi  n existe una gran cantidad de herramientas para el desarrollo IDE en JSF al ser el est  ndar de  JAVA    e La tecnologia JavaServer Faces proporciona una rica arquitectura para manejar el estado de los  componentes  procesar los datos  validar la entrada del usuario  y manejar eventos      Adem  s  ofrece una r  pida adaptaci  n para nuevos desarrolladores     No obstante  el uso de JavaServer Faces tambi  n tiene un conjunto de desventajas     e Su naturaleza como est  ndar hace que la evoluci  n de JS
17. ame      header  gt     h outputText value     VIDN Vo     f facet        h commandLink action        myBean editMyData   gt    lt h outputText value      f myDataltem id     gt    lt  h commandLink gt      lt  h column gt      lt  h dataTable gt    lt  h form gt     Obtener un registro seleccionado    En el c  digo anterior se indica que al hacer click en h commandLink se invocar   el m  todo editMyData   de  MyBean     El elemento MyData que corresponde a ese registro puede ser obtenido con el m  todo getRowData   de la clase  HtmiDataTable  Extendiendo la clase MiBean con el siguiente c  digo     package ejemplo   import javax faces component html HtmlDataTable     public class MyBean      private HtmlDataTable myDataTable        private MyData myDataltem      new MyData       public    Page 15   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     String editMyData         Obtener el elemento MyData para editarlo  myDataItem    MyData  getMyDataTable   getRowData       return     edit      Navega hacia edit       public HtmlDataTable getMyDataTable        return myDataTable        public MyData getMyDataltem    1    return myDataltem        public void setMyDataTable  HtmlDataTable myDataTable   1    this myDataTable   myDataTable        public void setMyDataltem MyData myDataltem  1    this myDataItem   myDataltem           Seleccionar varios registros utilizando checkboxes  Se pueden seleccionar varios registros  agregando  una propiedad de tipo boolean a la cla
18. ar modelos   lt  p gt      lt v inputText label    ID Modelo Original  se borrar  j    value        adminActualizaModelosController idmodeloOrigen      title    ID MODELO ORIGEN  id    idmodeloOrigen    size    io    required       true    maxlength    10   gt     lt v inputText label     ID Modelo Destino  todos los modelos tendr  jn este ID Modelo         adminActualizaModelosController idmodeloDestino      title    ID MODELO DESTINO  id    idmodeloDestino   size    io   required       true   maxlength   TEOS   lt p class      botonera  gt    lt h commandButton styleClass      boton   value      Enviar  action     Page 26   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF      f adminActualizaModelosController actionProcesaModelos     gt    lt  v form gt    lt     Volver a la p  jgina anterior    gt    lt v volverPanel label      S msg volver     S msg volverApanelDeControl   gt    lt  v volverPanel gt      lt  ui define gt    lt  ui composition gt     Page 27   10 03 2009 a las 12 03     lt  p gt     title     
19. context getExternalContext     getSessionMap      remove  key           Comunicacion entre ManagedBeans    Es posible tener mas de un managed bean en un scope  si es absolutamente necesario por dise  o  entonces  se puede utilizar el metodo getSessionMap   de FacesContext para comunicar los beans durante una sesion de  navegador    Un ejemplo de dos managed beans declarados en el fichero faces config xml      lt managed bean gt    lt managed bean name gt miBean1 lt  managed bean name gt    lt managed bean class gt ejemplo MiRequestBean lt  managed bean class gt    lt managed bean scope gt request lt  managed bean scope gt    lt  managed bean gt    lt managed bean gt    lt managed bean name gt miBean2 lt  managed bean name gt    lt managed bean class gt ejemplo MiSessionBean lt  managed bean class gt    lt managed bean scope gt session lt  managed bean scope gt    lt  managed bean gt     Tanto miBean1 como miBean2 ser  n accesibles desde cualquier p  gina JSF  no importando que el scope de  ambos sea distinto  El scope de miBean1 es request por lo que en cada petici  n se crear   una nueva instancia  mientras que el de miBean2 est   puesto en session  en cuyo caso la misma instancia del bean ser   utilizada  durante toda la sesi  n     Con la finalidad de obtener y asignar los valores en el SessionMap  podr  a ser   til crear una superclase con  algunos m  todos protected que fueran heredados por cada backing bean  o s  lo poner el mapa en una clase  utility como la que se est
20. dditional line separators and whitespace will be written  that    do not    influence the HIML code   Default     Page 9   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     true      lt  description gt    lt param name gt org apache myfaces PRETTY_HTML lt  param name gt     param value      true   param value      lt  context param gt     lt context param gt    lt param name gt org apache myfaces DETECT_JAVASCRIPT lt  param name gt     param value      false   param value     lt  context param gt    lt context param gt    lt description gt   If    true  a javascript function will be rendered that is able to restore the  former vertical scroll on every request  Convenient feature    if you have pages  with    long lists and you    do not want the browser page to always jump to the top    if you trigger a link or button action that stays on the same page   Default     false        description      param nameszorg apache myfaces AUTO SCROLL   param name      param value      false   param value     lt  context param gt         Listener  that does all the startup work  configuration  init      gt    lt listener gt    lt listener class gt org apache myfaces webapp StartupServletContextListener lt  listener class gt    lt  listener gt         Faces Servlet    gt    lt servlet gt    lt servlet name gt Faces Servlet lt  servlet name gt     servlet class   javax faces webapp FacesServlet   servlet class     lt load on startup gt 1 lt  load on startup gt    lt  servlet gt   
21. ean            String includePage   myBean getIncludePage          jsp      gt    lt f view gt    lt html gt    lt head gt    lt  head gt    lt body gt    lt h panelGroup rendered        myBean includePage       null     gt      lt jsp include page       lt    includePage   gt     gt    lt  h panelGroup gt    lt  body gt    lt  html gt      f view      Page 22   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     IMPORTANTE  no usar f subview en lugar de h panelGroup  Todas las p  ginas incluidas deber  an tener su  propio f subview con un   nico ID  El c  digo java del backing bean MyBean java deber  a parecerse al siguiente     private  String includePage   public    String getIncludePage        if            Do your thing     this is just a basic example     includePage     includePagel       else  if     1  includePage     includePage2       else  KE A  includePage     includePage3           return includePage          Aplicacion de ejemplo    Dentro del catalogo interno de la Junta de Andalucia se encuentra el proyecto CRIJA  en el cual se hace uso del  framework JSF  Este proyecto se encarga del mantenimiento del censo de equipos microinformaticos  En CRIJA  se utilizan p  ginas xhtml las cuales ser  n referenciadas mediante extensiones  jsf para ser controladas por el  FacesServlet definido en el web xml           Configuracion Faclets    gt    lt context param gt    lt param name gt facelets LIBRARIES lt  param name gt     param value   WEB INF facelet tomaha
22. es empleados  es recomendable la creaci  n de un cat  logo de validadores  f  cilmente  accesible  donde se encontrar   la relaci  n entre validadores  objetos de negocio y controles  Estos validadores  se crear  n en el mismo paquete  al igual que las clases para las etiquetas JSP  El nombre del validador deber    identificar  como m  nimo  el control o tipo de control sobre el que act  a y la acci  n de validaci  n que realiza   Ser  a recomendable que tambi  n el validador incluyera comentarios en el c  digo  tanto para comentar el  proceso como para generar documentaci  n javadoc     Subvistas din  micas    En cuanto al uso de scriptlets  La etiqueta jsp  include s  lo acepta el uso de scriptlets  Se requiere que  el managed bean tenga el alcance sesi  n  de lo contrario  surgir  n problemas al usar el alcance request  Sin  embargo  los mismos problemas surgen al usar m  ltiples subvistas e incluir etiquetas como se describe arriba     El c  digo XML relevante del fichero faces config es el siguiente      lt managed bean gt     managed bean name  myBean   managed bean name      managed bean class  mypackage MyBean   managed bean class     lt managed bean scope gt session lt  managed bean scope gt    lt  managed bean gt     El c  digo relevante del fichero JSP principal es     A  op    mypackage MyBean myBean    mypackage MyBean  session getAttribute      myBean       if  myBean       null       First time initialization of bean not done yet   myBean      new mypackage MyB
23. la aproximaci  n ActionForm y Action de Struts  el desarrollo con beans de respaldo de JSF  sigue unas mejores pr  cticas de dise  o orientado a objetos  Un backing bean no s  lo contiene los datos para  ver  tambi  n el comportamiento relacionado con esos datos  En Struts  Action y ActionForm contienen los datos  y la l  gica por separado     Manejo del scope y los managed beans  Se denomina scope a la disponibilidad  o contexto  de un objeto y a su per  odo de vida en una aplicaci  n web     Se ver   en un ejemplo de aplicaci  n de encuesta la utilizaci  n de un objeto con scope application para guardar  los votos  un objeto de scope session para asegurar que el usuario solo pueda votar una vez por sesi  n  se  utilizar   tambi  n un objeto con scope request para mostrar en pantalla la hora en que el usuario emiti   su voto   es de tipo request porque ese valor ya no se necesitar   m  s una vez mostrado     Tan pronto como un usuario est   en una pagina  los valores de los componentes son  recordados  cuando se  muestra la p  gina por ejemplo el hecho de que el usuario haga click en un bot  n que regrese null  Sin embargo  cuando abandona la p  gina el valor del componente desaparece     Para tener disponibles valores en otras p  ginas o incluso en la misma p  gina lo l  gico ser  a guardar los valores   Antes de crear una propiedad para que guarde un valor  se debe determinar el scope apropiado para ese valor   ya que muchos usuarios podr  an acceder a la aplicaci  n al mi
24. la navegaci  n entre  p  ginas  soportar internacionalizaci  n y accesibilidad  y proporcionar extensibilidad para todas estas  caracter  sticas    e Una librer  a de etiquetas JavaServer Pages  JSP  personalizadas para dibujar componentes UI dentro de  una p  gina JSP     Este modelo de programaci  n bien definido y la librer  a de etiquetas para componentes UI facilitan de forma  significativa la tarea de la construcci  n y mantenimiento de aplicaciones Web con Uls del lado del servidor  Con  un m  nimo esfuerzo  podemos     e Conectar eventos generados en el cliente a c  digo de la aplicaci  n en el lado del servidor      Mapear componentes Ul a una p  gina de datos del lado del servidor    e Construir un Ul con componentes reutilizables y extensibles    e Grabar y restaurar el estado del Ul mas all   de la vida de las peticiones de servidor     Como se puede apreciar en la siguiente figura  el interface de usuario que creamos con la tecnolog  a  JavaServer Faces  representado por myUl en el gr  fico  se ejecuta en el servidor y se renderiza en el cliente     ACCESSES page        HTTP Request       renders HTML        HTTP Response    La p  gina JSP  myform jsp  dibuja los componentes del interface de usuario con etiquetas personalizadas  definidas por la tecnolog  a JavaServer Faces  El Ul de la aplicaci  n Web  representado por myUI en la imagen   maneja los objetos referenciados por la p  gina JSP     e Los objetos componentes que mapean las etiquetas sobre la p  gina J
25. lementa completamente la caracter  stica  skinnability de incluir un gran n  mero de temas  skins  predefinidos  Con esta caracter  stica resulta mucho m  s  f  cil gestionar el look and feel de una aplicaci  n  Pueden visualizarse algunos ejemplos en la siguiente URL        http   livedemo exadel com richfaces demo welcome jsf       RC Faces  Rich Client Faces        Desarrollado por Vedana  http   www rcfaces org  RC Faces es una librer  a JSF que proporciona un conjunto  de componentes para construir la siguiente generaci  n de aplicaciones web  RC Faces usa tecnolog  as AJAX  y una API de Javascript orientada a objetos para construir p  ginas de forma din  mica  Es compatible con la  implementaci  n est  ndar de JSF  Desde la p  gina oficial se muestran algunos ejemplos de esta librer  a        hitp  www rcfaces org starter index jsf       ADF Faces    Todos los componentes de ADF Faces han sido donados por Oracle a la Fundaci  n Apache  la cual lo acogi    bajo el proyecto Trinidad y ahora se hace el lanzamiento de Apache MyFaces Trinidad Core 1 2 1  Proporciona  un amplio conjunto de componentes JSF  siempre permitiendo las interacciones con AJAX  que simplifican  radicalmente el desarrollo de aplicaciones web     Otras implementaciones estudiadas    e Sistemas basados en AJAX Tags   e Sistemas basados en AjaxAnywhere  e Libreria TagLibs Tobago   e Trinidad   e Sistemas basados en Rich Faces    Tabla Comparativa    Por   ltimo veamos una tabla comparativa de estas herra
26. mientas  Esta tabla suele actualizarse con frecuencia y  presenta la comparativa de las   ltimas librer  as de componentes     e http   www jsfmatrix net        Requisitos e incompatibilidades    En relaci  n con el uso de JSF  se han detectado lo siguientes requisitos agrupados por categor  a     e Versiones de Java   1  JDK 1 4 x  2  JDK 1 5 x    Contenedor de Servlet   Tomcat 4 x  Tomcat 5 x  JRun 4  SP1a   JBoss 3 2 x  JBoss 4 0 x  BEA Weblogic 8 1    O OT E    Page 5   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     7  Jonas 3 3 6 w  Tomcat  8  Resin 2 1 x   9  Jetty 4 2 x   10  Jetty 5 1 x   11  Websphere 5 1 2   12  OC4J    No obstante cualquier motor de servlet que cumpla la especificaci  n 2 3 deber  a valer  Respecto a JSP  con la  versi  n 1 2 es bastante  pero MyFaces usa caracter  sticas de la versi  n 2 0  por lo tanto en estos contenedores  habr   que instalar un jar adicional que viene con la distribuci  n  jsp 2 0 jar     IMPORTANTE  No a  adir ese jar si no es necesario  por ejemplo  en tomcat 5 5  la presencia de este archivo  causar  a que el motor de servlet dejara de funcionar     Adem  s habr  a que tener en cuenta las siguientes consideraciones     e El motor de servlet debe ser compatible con la especificaci  n 2 3 y las JSP deben ser acordes a la  especificaci  n 1 2       JSF   nicamente soporta peticiones realizadas con POST     e La especificaci  n no obliga a que haya validaciones en el cliente  si bien dos desarrollos como MyFaces y
27. rAtributo2    gt    lt  h commandButton gt      lt  h form gt  lt  pre gt     Luego  estos atributos pueden ser recuperados utilizando el m  todo getAttributes   del componente que  implementa el ActionEvent que manej   el actionListener     package ejemplo   import javax faces event ActionEvent     import es juntadeandalucia cice util FacesUtil     Page 11   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     public class MyBean    public void action ActionEvent event       String strAtributol   FacesUtil getActionAttribute  event      nombreAtributol       String strAtributo2  FacesUtil getActionAttribute  event    nombreAtributo2               package es  juntadeandalucia cice util   import javax faces event ActionEvent     public class FacesUtil      public  static  String getActionAttribute  ActionEvent event     String name       return    String  event getComponent     getAttributes     get  name              Por lo que las variables strAtributo1 y strAtributo2 ahora ya tienen los valores asignados de nombreAtributo1 y  nombreAtributo2 respectivamente  Se debe tener en cuenta que cada nombre de atributo debe ser   nico y no  sobreescribir atributos por defecto del componente como  id    name    value    binding    rendered   etc     Pasar objetos de request en request    Si se tiene un bean con scope de request y se quiere reutilizar una propiedad  par  metro u objeto en la siguiente  peticion sin tener que reinicializarlo otra vez y se puede utilizar el tag h
28. roducts icefaces html       ICEFaces proporciona un entorno de presentaci  n web para aplicaciones JSF que mejora el framework JSF  est  ndar y el ciclo de vida con caracter  sticas interactivas basadas en AJAX  Para trabajar con ICEfaces puede  elegirse cualquiera de las dos implementaciones est  ndar  En la siguiente direcci  n web pueden encontrarse  demos sobre sus componentes        hitp  www icesoft com products demos icefaces html       RichFaces    Rich Faces es un framework de c  digo abierto que a  ade capacidad Ajax dentro de aplicaciones JSF existentes  sin recurrir a JavaScript  Rich Faces incluye ciclo de vida  validaciones  conversores y la gesti  n de recursos  est  ticos y din  micos  Los componentes de Rich Faces est  n construidos con soporte Ajax y un alto grado de  personalizaci  n del   look and feel   que puede ser f  cilmente incorporado dentro de las aplicaciones JSF        http   labs jboss com jbossrichfaces        AJAX blueprints components    Desarrollado por java net  https   blueprints dev java net ajaxcomponents html Consiste en una serie de  componentes AJAX basados en la tecnolog  a JSF  Tienen dos librer  as de componentes JSF  Una basada  en la versi  n 1 2 de JSF y que puede ser usada en un servidor de aplicaciones JEE5  El otro conjunto tiene  componentes basados en JSF 1 1 y que pueden ejecutarse en servidores de aplicaciones J2EE 1 4  En la  p  gina oficial presentan demos de algunos componentes        JSF Extensions    Desarrollado por
29. se wrapper en este caso MyDate y en la columna desplegarlo como  h selectBooleanCheckbox     package ejemplo   public class MyData      private    boolean selected     public       boolean isSelected        return selected          public void setSelected     boolean selected       Page 16   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     this selected   selected           Y en la pagina JSF     lt h  form gt    lt h dataTable  value        myBean myDataList      var      myDataItem   binding        myBean myDataTable   gt    lt h column gt    lt f facet name      header  gt     h outputText value      Select          f facet      h selectBooleanCheckbox value      f myDataltem selected     gt    lt  h column gt      lt  h dataTable gt    lt h  commandButton  action        myBean getSelectedItems    value      Elementos seleccionados   gt    lt  h form gt     Ciclo de vida del listener    Puede ser   til para realizar un debug y cuando se est  n dando los primeros pasos con JSF el poner un  breakpoint de las diferentes etapas del ciclo de vida de una p  gina JSF  as   se puede conocer la cadena de  acciones que hace tras bambalinas    Las 6 fases de la vida JSF son     Restaurar vista   Asignar valores de petici  n  Realizar validaciones   Actualizar los valores del modelo  Invocar la aplicaci  n   Presentar las respuestas    DE    Este ser  a un ejemplo de un LifeCycleListener     package ejemplo     import javax faces event PhaseEvent     Page 17   10 03 2009 a
30. smo tiempo  as   que se necesitar  a utilizar el scope  m  s corto posible para hacer un mejor uso de los recursos del servidor  La siguiente figura muestra la duraci  n  de cada tipo de scope     Page 19   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     Application    TEA Page MT TI        Por ejemplo una aplicaci  n que tenga una lista desplegable con tipos de medidas  p  xeles  cent  metros y  pulgadas   se tendr  a que guardar en un ApplicationBean1  as   todos los usuarios en sesiones concurrentes  podr  an compartir la lista  Por otro lado el nombre del usuario logado se guardar  a en un SessionBean1 para  que el nombre est   disponible en todas las p  ginas que el usuario acceda durante su sesi  n  En caso de no  necesitar alguna informaci  n mas alla de la petici  n actual entonces se utilizar  a el RequestBean1     Page 20   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     Validadores    Los validadores est  ndar que vienen con JSF son b  sicos y podr  an no cumplir con los requerimientos de la  aplicaci  n  pero desarrollar validadores JSF propios es sencillo  aunque lo m  s recomendable es utilizar los  built in y s  lo en casos de extremo detalle o complejidad de la validaci  n crear uno pero extendiendo de la clase  base de JSF     Paginaci  n    Cuando la informaci  n a presentar en una p  gina es demasiada  se debe optar por partirla en varios apartados  o p  ginas  Permitiendo desplazarse al usuario entre todas ellas  el t  pico P  gin
31. ules JI    lij    IEN       figura 1    Page 8   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF     Tambi  n ser   necesario modificar el fichero web xml para que el servlet de JSF recoja todas las peticiones que  acaben en    jsf        lt  xml version      Lo      web app id      WebApp ID  version     mo 4m  xmlns      http   java sun com xml ns j2ee   xmlns xsi      http   www w3 org 2001 XMLSchema instance   xsi schemaLocation      http   java sun com xml ns j2ee  http   java sun com xml ns j2ee web app 2  4 xsd       context param       description     State saving method      client  or   server        default   See JSF Specification 2 5 2     description      param name   javax faces STATE SAVING METHOD   param name      param value  client   param value     lt  context param gt    lt context param gt    lt description gt   This parameter tells MyFaces    if javascript code should be allowed in the  rendered HTML output   If javascript is allowed  command_link anchors will have javascript code  that submits the corresponding form   javascript is not allowed  the state saving info and nested parameters  will be added as url parameters   Default     true      lt  description gt    lt param name gt org apache myfaces ALLOW_JAVASCRIPT lt  param name gt    lt param value gt     true lt  param value gt     lt  context param gt     lt context param gt    lt description gt   If    true  rendered HTML code will be formatted  so that it is     human readable    i e  a
32. wk taglib xml   WEB INF facelet viavansi custom taglib xml   param value       context param      context param     lt param name gt facelets DEVELOPMENT lt  param name gt    lt param value gt     true lt  param value gt     lt  context param gt          Solo durante el desarrollo  en produccion quitar   gt     lt context param gt    lt param name gt facelets REFRESH_PERIOD lt  param name gt     param value  1   param value        context param           Los comentarios xhtml son ignorados    gt     lt context param gt     Page 23   10 03 2009 a las 12 03    MADEJA   JavaServer Faces  JSF      lt param name gt facelets SKIP_COMMENTS lt  param name gt     param value      true   param value       context param               Configuracion JSF   gt    lt context param gt     param name   javax faces STATE SAVING METHOD   param name      param value  server   param value     lt  context param gt    lt context param gt     param name   javax faces DEFAULT SUFFIX   param name      param value   xhtml   param value       context param     lt     lt context param gt    lt param name gt org apache myfaces PRETTY_HTML lt  param name gt    lt param value gt     true lt  param value gt    lt  context param gt    gt    lt context param gt    lt param name gt org apache myfaces ALLOW_JAVASCRIPT lt  param name gt    lt param value gt     false lt  param value gt    lt  context param gt    lt context param gt     param name   javax faces CONFIG FILES   param name      param value     WEB INF
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
JHD-1000  - Automatisation JRT    IT EN FR DE ES PT RU I32N  Compte-rendu du débat public CPDP  SL-13BPS  Leica DISTOTM E7100i Leica DISTOTM E7100i  日本語 - optrel AG  ダウンロード  user manual  Operating Instructions    Copyright © All rights reserved. 
   Failed to retrieve file