Java Server Faces

Introducción

Llega el momento de aprender Java Server Faces (JSF) partiendo de un conocimiento del patrón MVC (Model View Controller) y de su implementación en librerías de escritorio como GTK+ y de como se implementar en Struts. La idea que me han transmitido de JSF es que es una revolución de Struts, el arquitecto es el mismo Craig McClanahan, buscando un modelo MVC basado en componentes en vez de centrarlo tanto en las acciones como ocurre en Struts. Este modelo es el natural de las librerías como GTK+, donde las acciones se podrían ver como los eventos, pero esos eventos están muy ligados a los componentes que los producen. Los componentes que los consumen están mucho más desacoplados. JavaServer Faces Technology de Sun es el sitio para empezar a aprender y el primer tutorial a seguir es este de SUN bastante completo. Y el tutorial que se incluye dentro de la platforma JavaEE para JSF también es recomendable. Y el artículo JSF for nonbelivers lo he encontrado útil cuando empiezas.

Para los que conocen Struts el enfrentar el "component framework (JSF)" frente al "action framework (Struts)" puede ayudar a pegar el salto de uno a otro. Y deja claro que en muchos sentidos pueden ser bastante complementarios, aunque en otros se pisan.

JSF nace como competidor de WebForms de .NET y en esencia, como el Swing para aplicaciones web. Así que acostumbrado a desarrollar aplicaciones de escritorio, creo que me sentiré más a gusto en JSF que en Struts.

Veremos que JSF no termina de encajar bien con JSP. JSP es un lenguaje de plantillas que genera un servlet con sus métodos doGet/doPost. En JSF el objetivo es visualizar componentes en el estado en el que estén. El ciclo de vida de JSP no está integrado con el ciclo de vida de los componentes JSF lo que lleva a confusiones. JSF se termina usando de forma más cómoda con Facelets, un motor de plantillas diferentes a JSP. Y nada mejor que el creador de Facelets para introducirnos la tecnología.

Ejemplo básico

Detalles de la arquitectura

Futuro

De la entrevista con Craig parece que Struts Shale podría ser otro framework a ser tenido muy en cuenta, lo mejor de Struts y JSF combinados.

JavaServerFaces (last edited 2009-04-20 09:52:53 by localhost)