Introducción a JSF con NetBeans

Anuncio
Introducción a JSF con NetBeans
Créditos
Yann Arthur Nicolas
yannart@gmail.com
www.merlinsource.com
Objetivo
Crear una primera aplicacion con JSF utilizando los tags para JSP y un ManagedBean, entender la configuracion básica de el archivo faces­config.xml.
Prerequisitos
Java basico, HTML básico, un IDE que soporte JSF y un contenedor JSP / Servlets.
Los pasos son indicados para NetBeans 5 y superior con Tomcat 5.
Nota: Como se hizo el tutorial en entorno Linux, las diagonales son "/" para Windows normalmente la barra esta invertida "\" pero el entorno NetBeans permite que bajo Windows se utilice el formato Unix.
¿Qué vamos a hacer?
Habrá una pagina principal (index.jsp) que tendrá un enlace a otra (entrada.jsp) con un formulario para poner nuestro nombre.
Al pulsar el botón del formulario, se validara si el campo no esta vacío y si el numero de caracteres esta en cierto rango (de 2 a 15). Si la entrada es correcta, se muestra un mensaje de bienvenida con el nombre ingresado, si hay un error, se recarga la pagina con el formulario y se muestra un mensaje especificando el tipo de error.
Proyecto
Abrimos NetBeans y creamos un nuevo proyecto:
File ­> New Project Categories ­> Web ­> Web Application
Aparece la ventana New Web Application Vamos a dejar casi todo como viene por default:
Project Name: Hola Project Location: dejar como viene por default o cambiar a cambiar a un directorio particular (ejemplo: /home/yannart/proyectos) • Project Folder: se llena solo • Source Structure: Java BluePrints • Server: Bundled Tomcat (para los que quieran usar Sun Application Server o JBoss, da lo mismo) • Java EE Version: J2EE 1.4 (los que utilicen el server de sun pueden usar en 1.5) • Context Path: dejar como viene. (/Hola) • Ponemos las dos palomas en los checkbox. •
•
Pulsamos el botón Next.
•
•
•
•
•
Ponemos la paloma en el checkbox JavaServer Faces Dejamos en blanco el checkbox de Struts Servlet URL Mapping: dejamos como viene (/faces/*) Ponemos la paloma en el checkbox Validate XML Dejamos en blando el checkbox Verify Objects Pulsamos el botón Finish. Por fin! =) JSP
Tenemos que crear unos archivos adicionales a los que se generaron al crear el proyecto:
•
•
•
entrada.jsp hola.jsp Para esto hacemos clic derecho en la carpeta "Web Pages" de su proyecto y luego "NEW ­> JSP..." Solo cambiamos el campo JSP File Name: Ponemos la paloma en el checkbox JavaServer Facesentrada Pulse Finish
Repita los mismos pasos para crear hola.jsp
Podemos borrar el archivo welcomeJSF.jsp ya que no se utilizara: clic derecho en el archivo welcomeJSF.jsp de la carpeta Web Pages y luego Delete.
Ahora va a remplazar el contenido de cada archivo jsp.
index.jsp < %@page contentType="text/html"% > < %@page pageEncoding="UTF­8"% > < !DOCTYPE HTML PUBLIC "­//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > < html > < head > < meta http­equiv="Content­Type" content="text/html; charset=UTF­8" > < title > tutorial JSF< /title > < /head > < body > < h1 > Bienvenido al tutorial JSF< /h1 > < br/ > < a href="./faces/entrada.jsp" > Dar tu nombre< /a > < /body > < /html > entrada.jsp < %­­ Importa los tags html para jsf­­% > < %@ taglib uri="http://java.sun.com/jsf/html" prefix="h" % > < %­­ Importa los tags de control para jsf­­% > < %@ taglib uri="http://java.sun.com/jsf/core" prefix="f" % > < %­­ Utiliza el siguiente archivo de recursos­­% > < f:loadBundle basename="hola.recursos.mensajes" var="msj"/ > < html > < head > < title > Dar nombre< /title > < /head > < body > < f:view > < h1 > < %­­ Pintamos texto­­% > < h:outputText value="#{msj.cabezal}"/ > < /h1 > < p > < %­­ Pintamos mensajes de error­­% > < h:messages style="color:red"/ > < /p > < %­­ Formulario­­% > < h:form id="helloForm" > < %­­ Pintamos texto­­% > < h:outputText value="#{msj.dar_nombre}"/ > < %­­ Campo de texto obligatorio cuyo valor se manda al atributo nombre del Bean personaBean ­­% > < h:inputText value="#{personaBean.nombre}" required="true" > < %­­ la entrada debe de tener entre 2 y 15 caracteres ­­% > < f:validateLength minimum="2" maximum="15"/ > < /h:inputText > < %­­ boton que ejecuta la accion­­% > < h:commandButton action="saluda" value="#{msj.boton}" / > < /h:form > < /f:view > < /body > < /html > hola.jsp < %­­ Importa los tags html para jsf­­% > < %@ taglib uri="http://java.sun.com/jsf/html" prefix="h" % > < %­­ Importa los tags de control para jsf­­% > < %@ taglib uri="http://java.sun.com/jsf/core" prefix="f" % > < %­­ Utiliza el siguiente archivo de recursos­­% > < f:loadBundle basename="hola.recursos.mensajes" var="msj"/ > < html > < head > < title > Bienvenido< /title > < /head > < body > < f:view > < h1 > < %­­ pintamos textos­­% > < h:outputText value="#{msj.signo1}" / > < h:outputText value="#{msj.saludo1}" / > < %­­ se recupera el valor nombre del Bean personaBean­­% > < h:outputText value="#{personaBean.nombre}" / > < h:outputText value="#{msj.saludo2}" / > < h:outputText value="#{msj.signo2}" / > < /h1 > < /f:view > < /body > < /html > JavaBean
File ­> New File ... Categories ­> JavaBeans Object File Types ­> JavaBeans Component Boton Next
•
•
Class Name: PersonaBean Package: hola Botón Finish Remplazamos el contenido del archivo ParsonaBean.java: package hola; import java.beans.*; import java.io.Serializable; /** * @author yannart */ public class PersonaBean { private String nombre; public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } } .properties
Creamos el archivo que contendrá los mensajes utilizados en las JSP:
File ­> New File Categories ­> Other File Tipes ­> Properties File Botón Next
Cambiamos los siguientes campos:
•
•
File Name: mensajes Folder: src/java/hola/recursos Pulsamos Finish
Cambiamos el contenido de este archivo por:
#lista de mensajes utilizados en las JSP cabezal=Tutorial JSF dar_nombre=Por favor escriba su nombre: saludo1=Bienvenido saludo2= a JSF boton=Saludarte signo1=¡ signo2=!
faces­config.xml
Ahora solo nos falta remplazar el contenido del archivo faces­config.xml de la carpeta Configuration faces: < ?xml version="1.0"? > < !DOCTYPE faces­config PUBLIC "­//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web­facesconfig_1_1.dtd" > < faces­config > < navigation­rule > < from­view­id > /entrada.jsp< /from­view­id > < navigation­case > < from­outcome > saluda< /from­outcome > < to­view­id > /hola.jsp< /to­view­id > < /navigation­case > < /navigation­rule > < managed­bean > < managed­bean­name > personaBean< /managed­bean­name > < managed­bean­class > hola.PersonaBean< /managed­bean­class > < managed­bean­scope > request< /managed­bean­scope > < /managed­bean > < /faces­config > Ejecución del proyecto
Si hicimos todo bien, deberíamos de ejecutar sin problema el proyecto:
Run ­> Run Main Proyect (o pulsamos F6) Algunas capturas de la ventana de navegador: 
Descargar