Documentos de Académico
Documentos de Profesional
Documentos de Cultura
II. INTRODUCCION
El desarrollo web se ha desarrollado a medida que ha evolucionado Internet por tal razn la bsqueda e implementacin de nuevas tecnologas para el desarrollo es indispensable en la actualidad.
La creacin de aplicaciones basadas en el patrn MVC se ve facilitada por el uso de marcos de trabajo (frameworks). Un marco de trabajo es una estructura o el esqueleto que nos permiten implementar las capas de nuestra aplicacin. Adems este patrn MVC nos permite tener una real separacin de la lgica de negocio y la presentacin de las aplicaciones web. Existen en la actualidad muchos frameworks para el desarrollo web sin embargo el uso de JSF nos puede aportar un sin nmeros de beneficios y herramientas a la hora de crear aplicaciones web, entre la cual podemos destacar la rica librera de etiquetas para la elaboracin de interfaces graficas de usuario, el API, validadores etc. El mundo del desarrollo web es enorme, sin embargo empezar con JSF nos abrir la pauta para poder meternos de lleno en el mismo , y avanzar posteriormente en nivel de dificultad.
II. RESUMEN
El presente trabajo tiene por objetivo hacer un estudio del framework Java Server Faces(JSF), tecnologa basada en el patrn modelo, vista controlador que pretende normalizar, estandarizar y dinamizar el desarrollo de aplicaciones web basadas en java, una de sus principales ventajas respecto a otros framewoks es que a la hora de desarrollar interfaces de usuario, estas se desarrollan de igual manera a como se lo hace con el swing de java adems del uso del lenguaje de programacion java y xhtml(integracin de html y xml) para poder codificar y la enorme flexibilidad que nos otorga para crear componentes. Analizaremos y haremos una conceptualizacin terica de todo lo relacionado a JSF como por qu usar JSF en nuestras aplicaciones web Java, cmo usar JSF, su funcionamiento, las etiquetas JSF, los managed beans, la navegacin entre pginas, el ciclo de vida JSF , validadores, conversores etc. Con lo que se espera llegar a una ptima comprensin de JSF.
Este modelo de programacin bien definido y la librera de etiquetas para componentes UI facilita 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 los beneficios que nos ofrece esta tecnologa son: Tratar el desarrollo de interfaces 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
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 navigationrule 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. Salidas tpicas: success: Failure: Logon: el usuario necesita logearse primero, IR a pagina de logon hubo algo mal, ir a una pgina de error. todo ocurri correctamente.
2) Ejemplo configuracin de navegacion Como especificamos anteriormente las reglas de navegacin indican 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. <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>
UISelectMany: Permite al usuario seleccionar varios tems de un grupo de tems. Esta clase es una subclase de UIInput. UISelectOne: Permite al usuario seleccionar un tem de un grupo de tems. Esta clase es una subclase de UIInput. Entre las etiquetas bsicas ms usadas tenemos: 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. formulario. Incluye un campo oculto del
<managed-bean> <managed-bean-name>usuario</managed-bean-name> <managed-bean-class>UsuarioBean</managed-beanclass> <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 nombre 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"/>[2]
D. Etiquetas JSF
JSF dispone de un conjunto bsico de etiquetas que permiten crear fcilmente componentes dinmicos en las pginas web. El conjunto de clases de componentes UI incluido en la ltima versin de JavaServer Faces es: UICommand: Representa un control que dispara actions cuando se activa. UIForm: Encapsula un grupo de controles que envan datos de la aplicacin. Este componente es anlogo a la etiqueta form de HTML. UIGraphic: Muestra una imagen. UIInput: Toma datos de entrada del usuario. Esta clase es una subclase de UIOutput. UIOutput: Muestra la salida de datos en un pgina. UIPanel: Muestra una tabla. UISelectItem: Representa un slo tem de un conjunto de tems. UISelectItems: Representa un conjunto completo de tems. UISelectBoolean: Permite a un usuario seleccionar un valor booleano en un control, seleccionndolo o deseleccionndolo. Esta clase es una subclase de UIInput.
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:Muestra una linea de texto 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 una lista desplegable de seleccin. h:selectOneRadio. Crea una lista de botones, redondos normalmente, excluyentes[3].
Podramos agrupar las validaciones en cuatro tipos bien diferenciados: - Validaciones estndar: Este tipo de validaciones son las ms 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. Entre los tipos de validadores tenemos: f:validateDoubleRange: valida un valor doubl dentro de un rango f:validateLongRange: valida un valor long dentro de un rango f:validateLength: valida un String dentro de un nmero mnimo y un nmero mximo de caracteres - 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 ms 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[4].
E. Conversores en JSF
Una de los muchos mecanismos que nos proporciona JSF de forma automtica para el desarrollador es el de la conversin. 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 as mismo volver a convertir a cadena en caso de que se quiere extraer informacin previamente ya guardada. JSF invoca a los Conversores 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,Byt eConverter,CharacterConverter,FloatConverter,Double Converter,BooleanConverter,DateTimeConverter Para hacer uso de los conversores usaremos el Atributo o Propiedad converter o el Tag f:converter
F. 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
4. Update model values(Actualizar los valores del modelo): Los valores ledos y validados son cargados en los beans. 5. Invoke application(Invocacin a la aplicacin): Se invoca a los mtodos de los beans de la pgina. Si es necesario se realiza la navegacin 6. Render response(Generacin de la pgina): En esta fase se genera la pgina que ser enviada al usuario con todos sus elementos y valores actualizados[1].
Los usuarios que gestiona la aplicacin se clasifican en: Desarrollo, a este grupo pertenecern los informticos que se encargan de desarrollar y mantener las aplicaciones web. CAU, personal perteneciente al servicio de informtica que se encargan del mantenimiento informtico y del inventario de equipos. Administrador, persona con permisos para acceder a todos los formularios.
IV. CONCLUSIONES
JSF es un framework que utiliza el patrn MVC(modelo, vista, controlador) para el desarrollo dinmico de aplicaciones web basadas en Java. La tecnologa JSF nos proporciona una rica arquitectura para manejar el estados de componentes, procesar datos, validar datos, y manejar eventos JSF nos permite desarrollar rpidamente aplicaciones de negocio dinmicas en donde se da una real separacin entre lgica de negocio y la presentacin de en las que toda la lgica de negocio se implementa en java, o es llamada desde java, creando pginas para las vistas muy sencillas, debido a que uso es muy similar a swing de java. Existen implementaciones de otros fabricantes para JSF como por ejemplo MyFaces o IceFaces que aparte de cumplir con el estndar JSF ofrecen componentes adicionales, razn por la cual se las debe tomar en cuenta a la hora de desarrollar aplicaciones web, como por ejemplo a la hora de desarrollar los proyectos de investigacin del mdulo actual.
REFERENCIAS
[1]Manual JSF, 22 de febrero 2010 https://docs.google.com/viewer?a=v&q=cache:imjygwayy4J:www.sicuma.uma.es/sicuma/Formacion/documentac ion/JSF. [2]Introduccin a JSF en java, 26 de marzo 2009 http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagi na=IntroduccionJSFJava [3]Etiquetas JSF, 10 de mayo 2011 http://www.slideshare.net/lauritat_9/etiquetas-bsicas-jsf9893451 [4]Validadores y Conversores en JSF, 13 de marzo 2006 http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagi na=convValidJSF [5] JSF(Java Server Faces), 21 de febrero 2006 http://www.desarrolloweb.com/articulos/2380.php