[RSS]

Fragmentos en una página web con Visual JSF (NetBeans 6.0 / 6.1)

Cuando desarrollamos en web, muchas veces nos hemos encontrado con la necesidad de repetir un fragmento de la página, ya sea el título, el menú principal, el banner superior.. etc.

JSF tiene la característica de reutilizar fragmentos de páginas, de tal manera solo editaríamos el fragmento del contenido y toda la web siempre usarán los mismos fragmentos.

NetBeans 6.0 / 6.1 viene con el plugin Visual JSF que permite la programación y diseño visual de la web sobre JSF. Aquí veremos un ejemplo aplicado.

¿Qué necesitamos?

  • NetBeans 6.0 / 6.1
  • El plugin Visual JSF. Esto se puede encontrar en Tools > Plugins, y en la pestaña Installed buscamos Visual JSF. Si no se encuentra, lo podemos decargar de la pestalla Available Plugins.
  • Descargar el siguiente banner:

Creando el proyecto web

1. Elegimos File > New project, seleccionamos de la categoría "Web" el proyecto "Web Application".

Clic en "Next"

2. Escribimos como nombre del proyecto DemoFragment

Clic en "Next". 3. Activamos el framework "Visual Web JavaServer Faces"

Clic en "Finish"

Con eso ya tenemos nuestro proyecto inicial, y se nos muestra el archivo Page1.jsp desde un editor visual.

Muy parecido cuando diseñamos los formularios Swing... tiene la paleta de controles en el lado derecho, y podemos arrástralos y ponerlo en la web. Todo un lujo.

Diseñando la página que tendrá los fragmentos

A este .jsp le definiremos regiones que serán fragmentos de otras páginas, para ello hacemos lo siguiente:

1. Presionamos Ctrl + Shift + 8 para mostrar la paleta de componentes. Luego seleccionamos de la sección "Layout" el componente "Page Fragment Box".

Lo arrastramos y lo soltamos sobre la esquina superior izquierda de Page1.jsp. 2. Nos mostrará la ventana "Select Page Fragment"

Como no hay ningún fragmento anterior, hacemos clic en el botón "Create New Page Fragment". 3. Escribimos como nombre de fragmento el valor "banner".

Clic en "OK" 4. Con esto se habrá creado un archivo banner.jspf (JSP Fragment)

También aparece en el panel "Navigator" un tag div indicando que se está incluyendo el banner.jspf

y también aparecerá en la lista desplegable.

Así que lo seleccionamos... y hacemos clic en "Close". Veremos que se el Page1.jsp ahora muestra un rectángulo con líneas punteadas. Por omisión el año de ese rectángulo es de 400 px y 200 de altura. 5. Repetiremos del paso 2 al 4 para crear un fragmento llamado "Menu". Solo que esta vez se situará debajo del fragmento "Banner" en el lado izquierdo. 6. Desde la paleta, en la sección "Basic" arrastramos un Static Text y lo soltamos a la derecha del fragment Menu que acabamos de colocar. Debe estar al lado derecho del fragmento, no dentro del fragmento. Escribiremos cualquier texto, por ejemplo yo le puse "Java Web Site"

7. Hacemos clic en cualquier parte de la página pero que no tenga un fragmento o el Static text. Luego vamos al panel de Properties (Shift + Ctrl + 7) y escribimos en la propiedad Title el valor "Java Web Site"

Diseñando el fragmento del menú

1. Desde el diseño visual de Page1.jsp hacemos doble clic sobre el fragmento menu. Esto nos abrirá el diseñador visual de Menu.jspf 2. Desde el panel de propiedades modificaremos el tamaño del fragmento a 150px de ancho y 100px de alto. 3. Desde la paleta, en la sección Basic arrastramos un Hyperlink y lo soltamos dentro del diseño del fragmento. Deberá tener como texto "Inicio". 4. En las propiedades de ese componente, modificamos la propiedad url y establecemos el valor /faces/Page1.jsp 5. Repetimos el paso 3 y 4 para crear un nuevo Hyperlink solo que esta vez el texto del enlace será "Noticias" y el valor de la propiedad url será /faces/News.jsp

Podemos ver el diseño visual de Page1.jsp. Arreglamos un poco los componentes para que vean mejor.

Haciendo la segunda página reutilizando los fragmentos

1. Del panel de proyecto, seleccionamos a Page1.jsp. Hacemos clic derecho y seleccionamos Copy. 2. Hacemos clic derecho en el nodo Web pages y seleccionamos Paste. Esto nos creará un archivo llamado Page1_1.jsp. 3. Lo renombramos presionando la teclado F2. El nombre nombre será News. 4. Aceptamos la refactorización que solicita. 5. Abrimos el archivo News.jsp. Vemos que luce igual que Page1.jsp. 6. Cambiamos el valor del Static Text a "Noticias", así como la propiedad title de News.jsp.

Ejecutando el proyecto

Pues simplemente presionamos la tecla F6 y vemos los resultados en el navegador

Y cuando hacemos clic en cualquiera de los enlaces, ambas páginas muestran el mismo diseño.

Finalmente

En adelante, cuando hagamos una web usando fragmentos, solo nos preocuparemos en modificar los .jsp que tienen el contenido, ya que los fragmentos siempre serán los mismos para todos.

Recursos

El proyecto que usé en este post está disponible aquí: http://diesil-java.googlecode.com/files/DemoFragment.tar.gz

Ver también


Attachments

fragment1.jpg Info on fragment1.jpg 47350 bytes
fragment10.jpg Info on fragment10.jpg 7879 bytes
fragment11.jpg Info on fragment11.jpg 145543 bytes
fragment12.jpg Info on fragment12.jpg 17926 bytes
fragment13.jpg Info on fragment13.jpg 85808 bytes
fragment14.jpg Info on fragment14.jpg 54993 bytes
fragment15.jpg Info on fragment15.jpg 63606 bytes
fragment2.jpg Info on fragment2.jpg 47509 bytes
fragment3.jpg Info on fragment3.jpg 45445 bytes
fragment4.jpg Info on fragment4.jpg 128055 bytes
fragment5.jpg Info on fragment5.jpg 23491 bytes
fragment6.jpg Info on fragment6.jpg 12057 bytes
fragment7.jpg Info on fragment7.jpg 7600 bytes
fragment8.jpg Info on fragment8.jpg 13464 bytes
fragment9.jpg Info on fragment9.jpg 16706 bytes
java-banner.jpg Info on java-banner.jpg 65295 bytes