El objetivo de este artículo es crear una primera aplicación con JSF utilizando los tags para JSP y un ManagedBean y entender la configuracion básica del archivo faces-config.xml.

Vamos a realizar lo siguiente: Tendremos 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 mostrará 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.

Para los ejemplos que realizaremos en este apartado utilizaremos NetBeans que se puede bajar desde la página de downloads de NetBeans. Para seguir estos ejemplos debemos bajar la version All de 261 Mb.

Una vez instalado el NetBeans,lo abrimos y creamos un nuevo proyecto: File -> New Project Categories -> Web -> Web Application. Aparecerá la ventana New Project, como se ve en la Figura 1:

Figura 1 - Creando un nuevo proyecto web con Java NetBeans

 

Luego pulsamos el botón Next y esto nos llevará a la siguiente ventana, donde elegimos un nombre para nuestra aplicación: "Ej_JSF". Dejamos como ubicación, la que viene por defecto

Figura 2 - En esta ventana elegimos el nombre y la ubicación de nuestro proyecto

Pulsamos Next y en la nueva ventana podremos elegir el Web Server a usar (en nuestro caso usaremos Glash Fish 3.1.1,como se ve en la Figura 3:

Figura 3 - Seleccionamos Glash Fish 3.1.1 como nuestro web server

Pulsando nuevamente Next, llegamos a la ventana final, donde elegimos JavaServer Faces como el framework a usar en nuestra aplicación Web:

Figura 4 - Aquí es donde establecemos que nuestra aplicación use JavaServer Faces

Haciendo click en Finish, NetBeans genera el proyecto y esta es la ventana que se genera luego de unos segundos:

Figura 5 - Nuestra aplicacion JSF creada

Como se aprecia en la figura 5, la página inicial que se muestra cargada en el editor, es la página index.xhtml. Le editamos el titulo en la sección head a "Bienvenidos a JSF" y cambiamos el texto "Hello from Facelets" reemplazándolo por los siguientes tags dentro del body:

<h2>Bienvenidos a JSF</h2>
<a href="./faces/entrada.xhtml">Dar tu nombre</a>

Eso hará que cuando corramos la aplicación, simplemente pulsando F6, obtengamos la siguiente salida:

Figura 6 - Página index.xhtml

Ahora creamos una nueva Página JFC y le ponemos de nombre entrada.xhtm, haciendo click con el botón derecho del mouse en la carpeta Web pages, como se ve en las figuras 7 y 8:

Figura 7 - Creamos una nueva página JSF, haciendo click en el botón derecho del mouse sobre la carpeta WebPages
Figura 8 - Ponemos el nombre de la nueva página y dejamos las otras opciones por defecto,

Creamos el archivo que contendrá los mensajes utilizados en las JSP:
File -> New File
Categories -> Other
File Types -> Properties File

Figura 9 - Creamos un archivo de recursos
Figura 10 - Lo nombramos mensaje y lo colocamos en el path src\java\hola\resources

Editamos el archivo mensajes.properties de la siguiente manera:

#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=!

Ahora, al ejecutar la aplicación y al apretar el link "Dar tu nombre" en la pagina inicial, vemos la siguiente página, como se ve en la figura 11:

Figura 11 - La página entrada,preparada para que ingrese su nombre

Editamos este archivo para que contenga el siguiente código:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
       xmlns:f="http://java.sun.com/jsf/core">
     <f:loadBundle basename="hola.recursos.mensajes" var="msj"/>
    <h:head>
        <title>Bienvenido</title>
    </h:head>
    <h: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>
    </h:body>
</html>

Ahora creamos el managedBean PersonaBean:
File -> New File ... <br/>
Categories -> JavaBeans Objects<br/>
Object File Types -> JavaBeans Component

package hola;

public class PersonaBean {
   private String nombre;
   public String getNombre() {
       return nombre;
   }
   
   public void setNombre(String nombre) {
       this.nombre = nombre;
   }
}

Ahora creamos el archivo faces-config.xml,para esto seleccionamos
File->New File...
JavaServer Faces-> JSF Faces Configuration
tal como vemos en la siguientes figuras:

Figura 12 - Creamos el archivo faces-config.xml
Figura 13 - Nombramos el archivo como faces-config

Editamos el archivo, agregándole lo siguiente:

<navigation-rule>
  <from-view-id>/entrada.xhtml</from-view-id>
  <navigation-case>
      <from-outcome>saluda</from-outcome>
      <to-view-id>/hola.xhtml</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>

Si hicimos todo bien, al correr el programa obtendremos la salida que vemso el las figuras 14 a 16

Figura 14 - Página inicial de nuestra aplicación JSF
Figura 15 - Al ingresar un nombre en la caja de texto y pulsar el botón....

 

Figura 16 - Hemos logrado pasar el nombre usando un managedBean y JSF
respag   
Panamá © 2012
Haga su donación para colaborar con La Escuela del Programador

La Escuela del Programador es un sitio web sin anuncios, sin ánimo de lucro, no es un sitio web comercial. Es el sueño de compartir con todos, muchos años de una gran pasión. Si realmente encuentra este sitio útil y lo aprovecha, le pido su generosa y no importa cuán modesta colaboración, simplemente para afrontar los costos de mantener este sitio disponible en internet.
No deseo lucrar con este sitio, ya que lo hago desinteresadamente, sólo le pido que, si puede, aporte (desde un dólar hasta lo que crea que puede dar), para afrontar los costos de dominio y hosting. Muchísimas gracias y ojalá juntos podamos hacer un sitio que sea una buena fuente de aprendizaje de programacíon en español.

Si no se siente en condiciones de colaborar, igualmente será bienvenido al sitio, es libre para todos y será un placer que encuentre mis artículos provechosos, pero si realmente me ayuda con una donación minima, seguramente, colaborará para que La Escuela del Programador se mantenga en la Web y crezca, conviertiendo a este sitio hecho con mucha pasión, dedicación y esfuerzo, en una buena fuente de aprendizaje.

Mis saludos cordiales y gracias por interesarse en mi sitio.

Rubén E. Spagnuolo
respag
Panamá - © 2012