Que es JSF?
JSF es una tecnología y framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa JavaServer Pages (JSP) como la tecnología que permite hacer el despliegue de las páginas
JSF
JavaServer Faces acrónimo de XML-based User-interface Language, lenguaje basado en XML para la interfaz de usuario
Para que sirve?
Un conjunto de APIs para representar componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegación de las páginas y dar soporte para internacionalización y accesibilidad.
Como se crea en NetBeans
Ubicamos nuestro proyecto y le damos nombre: JSFBasicProject
Seleccionamos el servidor de aplicaciones GlassFish con Java EE 7 y mantenemos la ruta
Seleccionaremos JSF y la librería Primefaces, por ejemplo, aunque en este proyecto no la vamos a usar.
Listo ya tenemos el proyecto creado con Primefaces, despliégalo para comprobar que todo funciona
Cual es el ciclo de vida de JSF?
Restaurar la vista ( restore view ). En este paso se obtiene el árbol de componentes correspondiente a la vista JSF de la petición. Si se ha generado antes se recupera, y si es la primera vez que el usuario visita la página, se genera a partir de la descripción JSF.
Aplicar los valores de la petición ( apply request values ). Una vez obtenido el árbol de componentes, se procesan todos los valores asociados a los mismos. Se convierten todos los datos de la petición a tipos de datos Java y, para aquellos que tienen la propiedad inmediate a cierta, se validan, adelantándose a la siguiente fase.
Procesar las validaciones ( process validations ). Se validan todos los datos. Si existe algún error, se encola un mensaje de error y se termina el ciclo de vida, saltando al último paso (renderizar respuesta).
Actualizar los valores del modelo ( update model values ). Cuando se llega a esta fase, todos los valores se han procesado y se han validado. Se actualizan entonces las propiedades de los beans gestionados asociados a los componentes.
Invocar a la aplicación ( invoke application) . Cuando se llega a esta fase, todas las propiedades de los beans asociados a componentes de entrada ( input ) se han actualizado. Se llama en este momento a la acción seleccionada por el usuario.
Renderizar la respuesta ( render response ).
Patron MVC
patrón de arquitectura de software, que separa los datos y la lógica de negocio de una aplicación de la interfaz de usuario y el módulo encargado de gestionar los eventos y las comunicaciones.
Estructura de una aplicación web creada con JSF
El navegador realiza una petición a una determinada URL en la que reside la página JSF que se quiere mostrar. En el servidor un servlet que llamamos motor de JSF recibe la petición y construye un árbol de componentes a partir de la página JSF que se solicita. Este árbol de componentes replica en forma de objetos Java la estructura de la página JSF original y representa la estructura de la página que se va a devolver al navegador. Por ejemplo, si en la página JSF se define un componente de tipo menú con la etiqueta
Facelets
sistema de código abierto de plantillas web bajo la Licencia Apache y la tecnología de controlador de JavaServer Faces (JSF). El lenguaje requiere documentos XML de entrada válidos para trabajar. Facelets es compatible con todos los componentes de la interfaz de usuario de JSF y se centra por completo en la construcción del árbol de componentes, lo que refleja el punto de vista de una aplicación JSF.
etiquetas de facelets
<c:forEach>
es la etiqueta de uso más común, ya que itera a través de una colección de objetos. La etiqueta <c forTokens> se utiliza para romper una cadena en tokens y iterar a través de cada una de las fichas.
<h:panelGrid>
símplemente es una tabla que tendremos que hacerlos poniendo manualmente todos los elementos. Sin embargo h.dataTable nos permite asociarla a una Collection, Array, ResultSet, RowSet... indicando cómo es una de las filas, iterando automáticamente el resto.
<h:selectOneMenu>
El objetivo de esta entrada es mostrar el uso del componente h:selectOneMenu obteniendo los datos de forma dinámica, para ello utilizaremos f:selectItems al definir los items de éste.
Además los items mostrados en el componente h:selectOneMenu serán objetos, por lo que será necesario definir un f:converter para convertir el id, de tipo String, en un objeto.
Validación en JSF
Es un formulario. Dentro de él hay un inputText y dentro del inputText un <f:validateLongRange> con un minimum y un maximum. El inputText además tiene required="true", por lo que no se podrá dejar en blanco.
Cuando pulsemos el botón de "Enviar" que hay justo debajo, se validará automáticamente el contenido del campo de texto, tanto que se ha rellenado como que lo introducido es un número entre -10 y 10 (ambos incluives) dando un error en caso contrario.
Si hay error, no se enviaré el formulario y se volverá a mostrar la misma página que lo contiene. El error aparecerá en la etiqueta <h:message>, en la que hemos puesto el atributo for="idNumero2", correpondiente al campo de texto. Cuando se muestre el formulario por primera vez,
Tenemos varios validators disponibles :
f:validateBean
f:validateDoubleRange
f:validateLength
f:validateLongRange
f:validateRegex
f:validateRequired
POJO
(acrónimo de Plain Old Java Object) utilizada por programadores Java para enfatizar el uso de clases simples y que no dependen de un framework en especial.
Este acrónimo surge como una reacción en el mundo Java a los
frameworks cada vez más complejos, y que requieren un
complicado andamiaje que esconde el problema que realmente se está modelando. En particular surge en oposición al modelo planteado por los estándares EJB anteriores al 3.0, en los que los "Enterprise JavaBeans" debían implementar interfaces especiales.
No hay comentarios:
Publicar un comentario