Java Server Faces

download Java Server Faces

of 125

  • date post

    19-Jun-2015
  • Category

    Documents

  • view

    1.328
  • download

    0

Embed Size (px)

Transcript of Java Server Faces

ndice general_

1. INTRODUCCIN ...............................................................................1 2. CREACIN DE UNA APLICACIN WEB CON JSF ...............................13 3. USANDO ADF FACES TABLES...........................................................45 4. USANDO ADF FACES TREE ..............................................................71 5. MENS ...........................................................................................97 GLOSARIO .........................................................................................119 REFERENCIAS WEB ............................................................................121 BIBLIOGRAFA ..................................................................................123

1ndice_

Introduccin

1.1. 1.2.

QU ES JSF? ...............................................................................3 JSF VS STRUTS .............................................................................4 1.2.1. Escalabilidad .....................................................................5 1.2.2. Controlador .......................................................................5 1.2.3. Navegacin .......................................................................6 1.2.4. Conclusiones .....................................................................8

1.3. 1.4.

IMPLEMENTACIN DE JSF: ADF FACES .........................................9 ENTORNO DE DESARROLLO DEL CURSO ......................................11

1

11.1. QU ES JSF? patrn Modelo-Vista-Controlador (MVC).

Introduccin

JavaServer Faces (JSF) es un framework estndar Java que permite construir aplicaciones Web. Se define por las especificaciones JSR 127, JSR 252 y JSR 276 e implementa el

Dicho modelo MVC es un patrn de arquitectura de desarrollo software que separa las aplicaciones en tres capas diferenciadas: datos (Modelo), interfaz de usuario (Vista) y lgica de control (Controlador). Esto permite una separacin entre la interfaz de usuario y la lgica que hace que el mantenimiento de las aplicaciones JSF sea sencillo.

JSF es un conjunto de componentes de usuario (UI) que permite construir la capa de vista de las aplicaciones Web. As, proporciona un conjunto de APIs para desarrollar estos componentes UI y gestionar su funcionamiento mediante el tratamiento de eventos, la validaciones de entrada, la definicin de la navegacin entre pginas y el soporte de accesibilidad. Asimismo, JSF trata el interfaz de usuario (Vista) de una forma parecida al estilo de Swing o Visual Basic, realizando su programacin a travs de componentes y basada en eventos. Adems, las clases de componentes UI incluidas en JSF encapsulan su funcionalidad y no la presentacin en un tipo de cliente especfico por lo que esto permite poder ser pintados en distintos clientes. Por otro lado, JSF permite tambin la creacin de nuestros propios componentes UI personalizados a partir de la extensin de los ya existentes e incluye la propiedad de render para pintarlos segn nos convenga.

3

1uso de determinados clientes.

Introduccin

Adems, la tecnologa JSF ha sido diseada para ser flexible al contrario que otras tecnologas actuales que exigen la utilizacin de lenguajes de marcadores, protocolos o el

Por todo esto, JSF es fcil de usar, su arquitectura define claramente una separacin entre las capas de lgica y presentacin permitiendo que la conexin entre ambas sea sencilla. Este diseo posibilita a cada miembro del equipo de desarrollo centrarse en la parte de la aplicacin que le corresponde desarrollar, proporcionando adems un modelo de programacin sencilla que simplifica la posterior unin de todos los mdulos. De esta forma, desarrolladores Web sin experiencia pueden utilizar componentes UI de JSF en sus pginas Web sin escribir apenas cdigo. Por ltimo, destacar que JSF resulta atractivo tanto para desarrolladores noveles como expertos. Los primeros podrn comprobar cmo se aaden componentes a una pgina con un simple drag and drop (es fcil de usar y muy visual) mientras que los segundos encontrarn un estndar robusto que les ofrece mucho potencial y flexibilidad para programar.

1.2.

JSF VS STRUTS

En este apartado describiremos las principales caractersticas de JSF frente a uno de los framework de desarrollo ms extendidos (Struts), con el objeto de obtener una regla de valoracin en cuanto a qu nos aporta JSF. Debido a que Struts es un framework mucho ms maduro que JSF (ste tan slo lleva dos aos utilizndose), en principio, puede parecer mucho ms seguro y rentable abordar el desarrollo de una aplicacin utilizndolo. No obstante, como veremos, esto no tiene por qu ser as en todos los casos, ya que, JSF adems de ser un framework con mucho potencial, presenta ventajas sobre Struts como por ejemplo, que JSF proporciona la capacidad de construir componentes desde distintas tecnologas por lo que se presta a ser desarrollado desde una amplia variedad de herramientas. Por otra parte, aunque Struts se dise inicialmente para ser independiente de la capa del modelo, normalmente los datos de las pginas deben pasar al ActionForm siguiendo un modelo especfico de entrada, lo que requiere realizar codificacin manual. JSF, sin embargo, oculta los detalles de los datos dentro del rbol componentes, permitiendo vincular a cualquier clase Java componentes ricos como rejillas de datos.

4

11.2.1. Escalabilidad mejorar el framework. Asimismo, JSF proporciona una funcionalidad equivalente

Introduccin

Tanto Struts como JSF proporcionan un nivel de escalabilidad tal que les permite satisfacer futuros requerimientos. As, una de las caractersticas de Struts es poseer una clase RequestProcessor que tiene varios mtodos para recuperar informacin a lo largo de todo el ciclo de vida de la peticin. Podemos extender esta clase con el objetivo de reemplazar o

permitindonos

extender

determinadas interfaces del ciclo de vida. Adems, JSF desacopla totalmente el pintado del Controlador permitiendo a los desarrolladores proporcionar sus propias herramientas de pintado para construir componentes personalizados. sta es una de las caractersticas ms potentes de JSF que no proporciona Struts. 1.2.2. Controlador Podemos considerar que las caractersticas ms importantes de un framework son el controlador y la navegacin. Struts utiliza para la capa del controlador los patrones Front Controller y Command Patterm. As, la forma de trabajar es la siguiente: un servlet realiza una solicitud, transforma los parmetros http en un Java ActionForm y ste en una clase Action (un comando). El framework de Struts utiliza slo un manejador de eventos para las peticiones http de tal forma que, una vez satisfecha la peticin, el ActionForm devuelve el resultado al Controlador que lo utiliza para seleccionar la navegacin siguiente. JSF, sin embargo, utiliza el patrn Page Controller. Aunque slo dispone de un nico servlet para recibir pgina con componentes, se ejecutarn distintos eventos por cada uno de ellos, traducindolos gracias a un traductor de componentes. Asimismo, los componentes tambin pueden vincularse a los datos desde el Modelo. De esta forma, JSF aade ms ventajas al Controlador y, al mismo tiempo, proporciona toda la flexibilidad del patrn Page Controller. Como hemos indicado, JSF puede tener varios manejadores de eventos en una sola pgina mientras que Struts slo es capaz de procesar un evento por peticin. Adems, con Struts el ActionForm debe extender clases creando as otra capa de cdigo engorroso y con posibilidad de disearse mal, forzando de esta forma a la capa de modelo a ser un ActionForm. Sin embargo, en JSF esta capa es totalmente independiente.

5

11.2.3. Navegacin determina a qu pgina se navega).

Introduccin

Respecto a la navegacin, tanto Struts como JSF se basan en un modelo declarativo, definindola mediante el uso de reglas en ficheros de configuracin XML (struts-config.xml, faces-config.xml). Ambos soportan tanto la navegacin esttica (cuando de una pgina se navega directamente a la siguiente), como la dinmica (cuando es una accin o lgica la que

Struts utiliza el concepto de forwards para definir la navegacin. Basndose en cadenas el framework de Struts decide qu pgina es la siguiente y la traduce. De esta forma, para definirla, se puede utilizar un Action tal y como mostramos a continuacin:

Struts soporta la navegacin dinmica mediante la definicin de especificaciones en la definicin de un Action, permitiendo tener mltiples forwards en un mismo Action:

Siendo posible programar qu forward devolver: public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionErrors errors = new ActionErrors();

6

1ActionForward forward = new ActionForward(); // return value MyForm myForm = (MyForm) form; try { // } catch (Exception e) { // Error errors.add("name", new ActionError("id")); forward = mapping.findForward("success"); return (forward); } forward = mapping.findForward("success"); return (forward); }

Introduccin

Sin embargo, en JSF la navegacin esttica se soporta gracias a la definicin de reglas de navegacin en el fichero de configuracin de las faces(faces-config.xml). En el siguiente ejemplo, mostramos en una regla de navegacin cmo navegar de una pgina a la siguiente:

/FromPage.jsp success /ToPage.jsp

A diferencia de Struts, la navegacin en JSF se aplica a nivel de pgina y puede ser independiente de la accin. sta hay que especificarla implcitamente en el componente, permitiendo de esta forma un control de grano ms fino en la pgina. Es posible, adems, tener varios componentes en una pgina definiendo distintas acciones y compartiendo las mismas reglas de navegacin tal y como podem