Curso de JSF
Saludar – el action es un método del BackingBean
En esta lección aprenderemos a vincular el atributo action de un botón directamente a un método de un Backing Bean en JSF. Este enfoque permite manejar la lógica de negocio desde Java, facilitando la navegación dinámica y personalizada en las aplicaciones.
index.jsp
Esta página contiene un formulario para capturar el nombre del usuario y un botón que invoca el método saludar del Backing Bean.
<html>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<f:view>
<h:form>
<h:outputText value="#{msgs.inicioSaludo}" />
<h:inputText value="#{SaludarBB.nombre}" />
<h:commandButton action="#{SaludarBB.saludar}"/>
</h:form>
<h:outputText value="#{msgs.hola}" />
<h:outputText value="#{SaludarBB.nombre}" />
</f:view>
</html>
h:inputText: Vincula el valor introducido por el usuario al atributonombredel Backing Bean.h:commandButton: Invoca el métodosaludaral ser pulsado.
messages.properties
Archivo para manejar textos dinámicos.
inicioSaludo = hola, introduce tu nombre
hola= hola
web.xml
Configuración básica para mapear el servlet de JSF.
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
faces-config.xml
Configuración del Managed Bean y reglas de navegación.
<navigation-rule>
<from-view-id>/saludar.jsp</from-view-id>
<navigation-case>
<from-outcome>next</from-outcome>
<to-view-id>/pagina2.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>SaludarBB</managed-bean-name>
<managed-bean-class>com.pablomonteserin.beans.SaludarBB</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<application>
<resource-bundle>
<base-name>com.pablomonteserin.messages</base-name>
<var>msgs</var>
</resource-bundle>
</application>
SaludarBB.java
Clase Java que actúa como Backing Bean, gestionando la lógica del formulario y la navegación.
package com.pablomonteserin.beans;
public class SaludarBB {
private String nombre;
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String saludar(){
//busqueda en BD, etc...
/*devolvemos el parámetro de navegación,
equivalente a SUCCESS de struts */
return "next";
}
}
- Método
saludar: Retorna un String que coincide con elfrom-outcomeconfigurado en el archivofaces-config.xml. Esto determina la página de destino.
Cómo funciona el ejemplo
- Entrada del usuario:
- El usuario introduce su nombre en el campo de texto.
- Este valor se almacena en el atributo
nombredel Backing BeanSaludarBB.
- Invocación del método:
- Al pulsar el botón Enviar, el método
saludarse ejecuta. - Este método retorna
"next", lo que redirige a la páginapagina2.jsp.
- Al pulsar el botón Enviar, el método
- Resultado:
- En
pagina2.jsp, se muestra el saludo dinámico utilizando los valores almacenados en el Backing Bean.
- En
Ejercicio
- Modifica el método
saludarpara que realice validaciones:- Si el campo
nombreestá vacío, retorna"error". - Si contiene un valor, retorna
"next".
- Si el campo
- Crea dos páginas:
error.jspcon un mensaje de error.pagina2.jspcon el saludo dinámico.
Con este ejercicio, ahora sabes cómo vincular métodos en un Backing Bean a acciones en la vista, permitiendo lógica personalizada para la navegación. En la próxima lección, aprenderemos a manejar parámetros adicionales en la navegación. 🚀