Richfaces es un framework para Java con el cual puedes crear un ambiente AJAX de manera facil, rapida y limpia, a continuación presentare un ejemplo sencillo, donde podras ver el poder de este framework.
Primero, necesitamos el JavaBean, como el siguiente, como puedes ver tenemos una operacion con un ActionEvent, esta servirá para comunicarse con el Boton Submit del Formulario y escuchara sus llamados.
package events.richfaces; import javax.faces.event.ActionEvent; public class echoBean { private String name; private Integer count; public Integer getCount() { return count; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void countListener (ActionEvent event){ count = name.length(); } }
Después tenemos que ponerlo en nuestro faces-config.xml, para tener acceso a el Bean desde las paginas web
<managed-bean> <managed-bean-name>echoBean</managed-bean-name> <managed-bean-class>events.richfaces.echoBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean>
Una vez lista la logica, vamos con la capa de presentación, vamos a explicar brevemente la función de algunas etiquetas:
- a4j:support : Este componente activa la funcionalidad AJAX para tu pagina en cualquier componente JSF, se agrega como un hijo del componente y se configura segun convenga.
- actionListener=”#{echoBean.countListener}”: Se puede poner dentro del a4j, y al ejecutar el evento, a su vez, ejecuta la operación del bean.
- reRender=”echo, count”: Sin estas etiquetas no se mostraria los datos actualizados despues de la petición ajax, y hace que las etiquetas con los ID listados, se actualicen, esas etiquetas deben estar ligadas con el GET del bean.
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%> <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <h:form> <rich:panel> <h:panelGrid columns="2"> <h:outputText value="Nombre" /> <h:inputText value="#{echoBean.name}" /> <h:outputText value="echo:" /> <h:outputText id="echo" value="#{echoBean.name}" /> <h:outputText value="Count" /> <h:outputText id="count" value="#{echoBean.count}" /> </h:panelGrid> <!--<h:commandButton actionListener="#{echoBean.countListener}" value="Submit" />--> <a4j:commandButton actionListener="#{echoBean.countListener}" value="Submit" reRender="echo,count" /> </rich:panel> </h:form>


Alex
on Nov 14th, 2008
@ 18:16:
Hola,
Alguien sabe porque no me pilla los estilos para los componentes a4j ???
como pueda ser
Para los demás componentes ejemplo componentes RichFaces si.
Alex
on Nov 14th, 2008
@ 18:25:
Me referÃa a los estilos por defecto, es decir que los ponga solo, como cuando metes un rich:panel que te colorea el header con el degradado etc, pues lo mismo para los componentes a4j y que queden todo chulos los botones y demás elementos como en estos ejemplos.
Lo que no quiero es dar estilos a mano o copiarlos de esa web por ejemplo y pasarlos a mi css, sino que los pille de donde leches lo tenga. Estoy desesperado… :S
Jota
on Nov 14th, 2008
@ 18:34:
Si tenes todas las librerias, deberian aparecerte correctamente, ademas en el XML creo que deberia ir esto.
Verifica si lo tienes …