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). Los principales componentes de la


tecnologa JavaServer Faces son:

Un API y una implementacin de referencia para: representar componentes UI y manejar su estado; manejo de eventos, validacin del lado del servidor y conversin de datos; definir la navegacin entre pginas; soportar internacionalizacin y accesibilidad; y proporcionar extensibilidad para todas estas caractersticas.

Una librera de etiquetas JavaServer Pages (JSP) personalizadas para dibujar componentes UI dentro de una pgina JSP.

Este modelo de programacin bien definido y la librera de etiquetas para componentes UI facilitan de forma significativa la tarea de la construccin y mantenimiento de aplicaciones Web con UIs del lado del servidor. El cdigo JSF con el que creamos las vistas (etiquetas jsp) es muy parecido al HTML

estndar. Lo pueden utilizar fcilmente desarrolladores y diseadores web.

Algunos de las beneficios que nos ofrece esta tecnologia son: Tratar el desarrollo de interfazes de usuario de una forma similar a Swing, Visual Basic o Delphi, donde la programacin del interfaz se hacer a travs de componentes y basada en eventos.
JSF es muy flexible. Por ejemplo nos permite crear nuestros propios componentes, o crear nuestros propios render para pintar los componentes segn nos convenga. La tecnologa JavaServer Faces permite construir aplicaciones web que introducen realmente una separacin entre el comportamiento y la presentacin, permitiendo a cada miembro del equipo de desarrollo de una aplicacin Web enfocarse en su parte del proceso de desarrollo

-Configuracion de los bens en jsf Los beans son clases java que se asocian a los JSF para poder permitir separar la presentacion y la logica de negocio en el desarrollo de una aplicacion web; pueden ser configurados y manipulados sin programar, a travs de entornos de trabajo (frameworks) o entornos de desarrollo integrados. Se referencian en el fichero de configuracion de JSF en el apartado de managed beans.
La configuracin de los beans establece el nombre con el que se invocan sus acciones en las pginas jsp y la ruta completa del paquete en el que se encuentra la clase que representa el backing bean.

Vamos a describir como configurar un bean mediante un archivo de configuracin. Los detalles son mas bien tcnicos. El archivo de configuracin ms comnmente usado es WEB-INF/faces-config.xml.

Un bean se define con una etiqueta managed-bean al comienzo del fichero faces-config.xml. Bsicamente se debe especificar nombre del bean con la etiqueta

<managed-bean-name>Ser necesario aadir un bloque <managed-bean> por cada bean que se quiera
sea gestionado por el framework. Nombre cualificado de la clase a la que pertenece el bean. <managedbean-class>

mbito del bean siendo sus posibles valores: request, session y application(peticion,sesion,aplicacion) con la etiqueta <managed-bean-scope> por ejemplo, para definir un bean llamado usuario, que est en la clase UsuarioBean y con un mbito de sesin, sera: <managed-bean> <managed-bean-name>usuario</managed-bean-name> <managed-bean-class>UsuarioBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean>

-configuracion para navegacion en jsf. El desarrollador de la aplicacin define la navegacin por la aplicacin mediante el fichero de configuracin, faces-config.xml, el mismo fichero en el que se declararon los managed beans . Cada regla de navegacin define cmo ir de una pgina (especificada en el elemento from-view-id) a otras pginas de la aplicacin. El elemento navigation-rule puede contener cualquier nmero de elemento navigation-case, cada uno de los cuales define la pgina que se abrir luego (definida por to-view-id) basndose en una salida lgica (definida mediante from-outcome). La salida se puede definir mediante el atributo action del componente UICommand que enva el formulario. Ahora vamos con las reglas de navegacin, de esta manera, indicamos a que pgina ir tras otra pgina. En este caso la navegacin es simple, tras pulsar el botn Aceptar, navegamos desde index.jsp hasta hola.jsp. Estas reglas de navegacin se especifican en el fichero faces-config.xml, como se muestra a continuacin: <faces-config> <navigation-rule> <from-view-id>/index.jsp</from-view-id> <navigation-case> <from -outcom e>login</from-outcome> <to-view-id>/hola.jsp</to-view-id> </navigation-case> </navigation-rule> <managed-bean> <managed-bean-name>usuario</managed-bean-name>

<managed-bean-class>UsuarioBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> </faces-config> El valor de from-outcome (login), indica la accin que se debe producir en la pgina from-view-id (index.jsp) para navegar al destino representado por to-view-id (hola.jsp). La accin es un mero nombrecito que se da a los botones de un formulario; en nuestro caso, la pgina index.jsp inclua la etiqueta: <h:commandButton value="Aceptar" action="login"/> -Etiquetas jsf JSf dispone de un conjunto bsico de etiquetas que permiten crear fcilmente componentes dinmicos en las pginas web. Estas etiquetas son:

h:commandButton. Un botn al que podemos asociar una accin. h:commandLink. Un enlace hipertexto al que podemos asociar una accin.

h:dataTable. Crea una tabla de datos dinmica con los elementos de una propiedad de tipo Array o Map del bean. h:form. Define el formulario JSF en la pgina JSPh:graphicImage. Muestra una imagen jpg o similar. h:inputHidden. Incluye un campo oculto del formulario. h:inputSecret . Incluye un campo editable de tipo contrasea (no muestra lo que se escribe) h:inputText. Incluye un campo de texto normal. h:inputTextarea. Incluye un campo de texto multilnea. h:message. Imprime un mensaje de error en la pgina (si se ha producido alguno). h:messages. Imprime varios mensajes de error en la pgina, si se han producido.

h:outputFormat. Muestra texto parametrizado. Utiliza la clase java.text.MessageFormat de formateo. h:outputLabel. Muestra un texto fijo. h:outputLink. Crea un enlace hipertexto. h:outputText h:panelGrid. Crea una tabla con los componentes incluidos en el panelGrid.

h:panelGroup. Agrupa varios componentes para que cierto componente los trate como un nico componente (por ejemplo para meter varios componentes en una celda de un panelGrid. h:selectBooleanCheckbox. Crea una casilla con dos estados: activado y desactivado. h:selectManyCheckbox. Crea un conjunto de casillas activables. h:selectManyListbox. Crea una lista que permite seleccionar mltiples elementos. h:selectManyMenu. Crea una lista desplegable de seleccin mltiple.

h:selectOneListbox. Crea una lista en la que se puede seleccionar un nico elemento. h:selectOneMenu. Crea na lista desplegable de seleccin. h:selectOneRadio. Crea una lista de botones, redondos normalmente, excluyentes.

-Conversores en jsf

Una de las muchos mecanismos que nos proporciona JSF de forma automtica 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 ha definido para cada uno de ellos en el bean especificado, y asi mismo volver a convertir a cadena en caso de que se quiere extraer informacion previamente ya guardada. JSF invoca a losConversores antes de efectuar las validaciones y por lo tanto antes de aplicar los valores introducidos a las propiedades del bean. En el caso de que un dato tipo cadena no se corresponda con el tipo JAVA apropiado, el Conversor correspondiente lanzar un ConversionException y el componente se marcar como invalidado. JSF nos proporciona los siguientes conversores: BigDecimalConverter, BigIntegerConverter, NumberConverter,IntegerConverter, ShortConverter,ByteConverter,CharacterConverter, FloatConverter,DoubleConverter,BooleanConverter,DateTimeConverter Para hacer uso de los conversores usaremos el Atributo o Propiedad converter o el Tag f:converter
-validadores en jsf

El proceso de validacin se asegura que el dato introducido en el correspondiente componente es correcto segn la lgica de la aplicacin, de acuerdo a ciertas reglas especificadas para cada uno de estos, como pueden ser la longitud mnima y mxima para un campo .El proceso de validacin ocurre antes de que el FrameWork asigne los valores introducidos en el formulario a las propiedades del bean y justo despus de que se hayan aplicado las conversiones, en el caso de que haya. Las validaciones aseguran que un dato introducido en un formulario JSF tenga un valor correcto, cada componente JSF que reciba datos de entrada puede tener asociado 1 o ms validadores

Podramos agrupar las validaciones de (JSF, ADF BC) en cuatro tipos bien diferenciados: - Validaciones estndar: Este tipo de validaciones son las mas bsicas, y se realizan a nivel de view, en el jsp. Ejemplos de este tipo de validaciones son comprobar que un valor este entre un determinado rango, comprobar la longitud del valor introducido, etc. - Validaciones en el backing bean: Este tipo de validaciones suelen ser un poco ms complejas que las anteriores. Y al realizarse en el backing pueden tratarse de validaciones mltiples que tengan en cuenta valores de otros campos del formulario. - Validaciones en la capa de negocio, a nivel de aplicacin: Este tipo de validaciones tratan de validar un proceso de nuestra aplicacin, se trata de validar el proceso que se realizar al rellenar el formulario. Es decir, en este tipo de validaciones mas que validar que los datos introducidos sean correctos, lo que se comprueba es que se pueda hacer una determinada tarea con esos datos. - Validaciones con nuestro propio Validator: Este tipo de validadores es frecuente usarlos cuando tenemos un tipo de campo que hay que validar y que se repite con frecuencia en diferentes formularios de nuestra aplicacin, como podra ser validar un NIF o un nmero de cuenta bancaria, etc.
-ciclo de vida en jsf 1. Restore view(Restaurar los componentes de la vista): En esta etapa el controlador construye en memoria la estructra de componentes de la pagina 2. Apply request values(Aplicar los valores de peticion): Se leen los valores de la request(objeto implincito que permite realizar peticiones con parmetros) y se aplican sobre los componentes. En este momento es cuando se llama a los converters. Si hay algn error en la conversin se ir directamente a la fase render response. Si un componente tiene immediate=true su validacin (y el procesamiento de los eventos provocados por esa validacin) se har en esta fase . 3. Process validations(Procesamiento de las validaciones): se validan todos los componentes (todos los que tienen immediate=false, ya que los que lo tienen a true ya se validaron en la fase anterior). Si falla alguna de las validaciones se ir directamente a la fase render response. 4. Update model values(Actualizar los valores del modelo): Los valores leidos y validados son cargados en los beans. 5. Invoke application(Invocacion a la aplicacion): Se invoca a los mtodos de los beans de la pagina. Si es necesario se realiza la navegacion 6. Render response(Generacion de la pgina): En esta fase se genera la pagina que sera enviada al usuario con todos sus elementos y valores actualizados.

-scope o ambito de los objetos

Estos mbitos normalmente mantienen beans y otros objetos que necesitan estar disponibles en diferentes componentes de una aplicacin web.

mbito de tipo peticin: Es el de vida ms corta. Empieza cuando una peticin HTTP comienza a tramitarse y acaba cuando la respuesta se enva al cliente. Por ejemplo, el la siguiente lnea de cdigo: <f:loadBundle basename="mensajes" var="msjs"/> la etiqueta f:loadBundle hace que la variable bundle solo exista mientras dura la peticin. Un objeto debe tener un mbito de este tipo slo si lo que se quiere es reenviarlo a otra fase de procesado. mbito de tipo sesin: El navegador enva una peticin al servidor, el servidor devuelve una respuesta, y entonces ni el navegador ni el servidor tiene cualquier obligacin para conservar cualquier memoria de la transaccin. Este acomodamiento simple marcha bien para recuperar informacin bsica, pero es poco satisfactorio para aplicaciones del lado del servidor. La sesin el rastreo con cookies es completamente transparente al desarrollador web, y las etiquetas estndar JSF automticamente reescriben URL si un cliente no usa cookies. El mbito de sesin permanece desde que la sesin es establecida hasta que esta termina. Una sesin termina si la aplicacin web invoca el mtodo invalidate en el objeto HttpSession o si su tiempo expira. Las aplicaciones Web tpicamente colocan la mayor parte de sus bean dentro de un mbito de sesin. mbito de tipo aplicacin: Persiste durante toda la aplicacin web. Este mbito compartido entre todas las peticiones y sesiones. -Gestion de usuarios en jsf

BIBLIOGRAFIA http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=convValidJSF http://www.adictosaltrabajo.com/tutoriales/tutoriales.php? pagina=IntroduccionJSFJava#_Toc22542269