Curso de JSF | Saludar – el action es un método del BackingBean 1

Curso de JSF
Saludar – el action es un método del BackingBean

Curso de JSF | Saludar – el action es un método del BackingBean 2

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}" />&nbsp;
	<h:outputText value="#{SaludarBB.nombre}" />
</f:view>
</html>
  • h:inputText: Vincula el valor introducido por el usuario al atributo nombre del Backing Bean.
  • h:commandButton: Invoca el método saludar al 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 el from-outcome configurado en el archivo faces-config.xml. Esto determina la página de destino.

Cómo funciona el ejemplo

  1. Entrada del usuario:
    • El usuario introduce su nombre en el campo de texto.
    • Este valor se almacena en el atributo nombre del Backing Bean SaludarBB.
  2. Invocación del método:
    • Al pulsar el botón Enviar, el método saludar se ejecuta.
    • Este método retorna "next", lo que redirige a la página pagina2.jsp.
  3. Resultado:
    • En pagina2.jsp, se muestra el saludo dinámico utilizando los valores almacenados en el Backing Bean.

Ejercicio

  1. Modifica el método saludar para que realice validaciones:
    • Si el campo nombre está vacío, retorna "error".
    • Si contiene un valor, retorna "next".
  2. Crea dos páginas:
    • error.jsp con un mensaje de error.
    • pagina2.jsp con 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. 🚀