Explicando JSF 2.0 en ADF Faces y JDeveloper 11g R2

jsf-logo

Como lo anuncié en mi último artículo, una de las características más relevantes de JDeveloper 11g R2 (11.1.2.0) es el soporte a JSF 2.0. Luego de haber tenido una charla muy interesante con el equipo de desarrollo de ADF Faces, pude aclarar algunas dudas que tenía acera de JSF 2.0 y como este soporte se refleja en las aplicaciones ADF nuevas y existentes.

En este artículo voy a explicar que implica el tener a JSF 2.0 y porque debemos familiarizarnos con esta especificación como desarrolladores en ADF.

¿Qué había antes y que tenemos ahora?

Desde la primera versión de ADF 11g R1, hasta la última, 11g R1 patchset 4 (11.1.1.5.0), ADF Faces y JDeveloper soportan la especificación JSF 1.x. En otras palabras la primera versión de la especificación del estándar.

Dado que ADF Faces se basa en JSF, muchas de las características que se implementaron en ADF Faces desde la primera versión de ADF 11g R1, adicionaban funcionalidad que JSF 1.x no ofrecía y desde el punto de vista de los ingenieros en Oracle se tenía que ofrecer desde el día 1.

Algunos ejemplos de estas características son el refrescamiento parcial de componentes, los componentes declarativos, la implementación sobre jspx y el ADF controller.

JDeveloper 11g R2 actualiza las librerías JSF 1.x por JSF 2.0. Por lo cual, cualquier aplicación ADF que se abra en JDeveloper 11g R2 va a ser actualizada a JSF 2.0 más no migrada. Esto quiere decir que las librerías y tag libraries de ejecución son actualizadas a JSF 2.0.

Para saber al detalle cuales archivos están involucrados en este proceso, se puede leer las Release Notes de JDeveloper 11g R2. Este proceso lo único que hace es habilitar la aplicación para que sea compatible con JSF 2.0.

¿Que hacer ahora que su aplicación es compatible con JSF 2.0?

La regla general es, para aplicaciones ADF existentes se recomienda continuar desarrollando la aplicación de la misma forma que lo venía haciendo con versiones anteriores, por lo que no se recomienda mezclar JSPX con facelets (JSF 2.0) ya que los ciclos de vida de una y otra implementación son diferentes. Así mismo hay elementos de JSF 2.0 que únicamente funcionan sobre facelets por lo cual no se podrán utilizar en sus aplicaciones.

Para mayor información acerca de los componentes que solo funcionan en JSF 2.0 puede consultar la especificación.

Si usted hoy en día esta comenzando la construcción de una nueva aplicación ADF, entonces la recomendación es utilizar JSF 2.0 con facelets y todas sus bondades sin tener ningún problema de compatibilidad (si llega a tener problemas déjenoslos saber a través del foro).

Los componentes ADF Faces en JDeveloper 11g R2 se basan en la implementación JSF 2.0 de Mojarra. Esto es importante para aquellos que estén trabajando sobre JSF 2.0.

Consideraciones adicionales sobre JSF 2.0 y ADF Faces

Componentes Declarativos: Tanto ADF Faces como JSF 2.0 ofrecen una implementación de componentes declarativos, ambas implementaciones son soportadas dentro de JDeveloper, lo importante para la utilización de una o de otra es el estado de la aplicación en la que se quiere utilizar.

Tag Library AJAX: Uno de las características llamativas de JSF 2.0 es la posibilidad de utilizar un nuevo tag para invocar eventos asincrónicos tipo AJAX desde el browser. Su utilización es soportada, más sin embargo esta es una funcionalidad que ya viene con ADF Faces desde el principio con el PPR (Partial Page Rendering)

Managed Beans: A partir de JSF 2.0 los beans no tienen que quedar registrados dentro de el faces-config o ADFc-config. Ahora, al igual que en EJB 3.0 se utilizan las anotaciones y dentro de la anotación se determina el scope respectivo del bean. Este tipo de beans están 100% soportados en JDeveloper y WebLogic server.

Las próximas versiones de JDeveloper continuaran utilizando JSF 2.0 por lo cual es importante desde ya familiarizarse y sacar provecho de esta especificación en sus nuevos desarrollos.


4 Responses to Explicando JSF 2.0 en ADF Faces y JDeveloper 11g R2

kpto76 dijo...

Hola, he migrado mi aplicacion a JSF 2.0, Ok funciona muy bien en mi weblogic integrado, ahora quiero desplegarlo en un server weblogic que funcionaba con la version anterior y tengo inconvenientes por la nueva version. hay alguna sugerencia para actualizar el weblogic server?

Unknown dijo...

Hola, en que versión de Weblogic está intentando hacer el despliegue? Normalmente podría crear un nuevo dominio con el runtime de ADF 11g R2 en el cual se desplieguen las aplicaciones JSF 2.0 compatibles. Pero el contenedor tiene que ser 10.1.3.5.

Saludos

Juan Camilo

Anónimo dijo...

Gracias buena entrada, pues he comentarles que no es posible usar un task-flow como una region dentro de paginas facelets esto lo he verificado en el release 2 de la version 11.1.2.3 de jdeveloper, lamentablement con ello hemos perdido una de las características mas importantes en la capa de vista, pues ello nos ha permitido componentizar tareas de flujo y usarles en un numero infinitos de paginas maestras
saludos

Cedeweb dijo...

Muy buen material y con gran utilidad. Lo mejor que es posible hacer hoy , es recomendar a un experto certificado que nos asesore.

Éxito http://bit.ly/1i9gAIS