a4j:support and a4j:status
When there is a request to the server, the client have to wait untill he gets the response. It will be nice if you give status of the server request processing. use a4j:status tag in the RichFaces to implement this feature in your webpages. In this example this tag is used with a4j:support and showing the status message while user types in the text field.
also read:
This example also used some other useful attributes in the tag. Ti display the text message use starttext and stoptext. if you want to use image instaed of displaying text, the use
<a4j:status> <f:facet name="start"> <h:graphicImage value="process.gif"/> </f:facet> </a4j:status>
.
Display the different styles using startStyle and stopstyle attributes.
richfaces.jsp
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%> <%@ taglib prefix="rich" uri="http://richfaces.org/rich" %> <%@ taglib prefix="a4j" uri="http://richfaces.org/a4j"%> <html> <body> <f:view> <h:form id="jbForm1"> <h:outputText value="Employee id : "/> <h:inputText value="#{richBean.empId}"> <a4j:support event="onkeyup" reRender="output" action="#{richBean.update}" /> </h:inputText> </h:form> <h:panelGrid id="output"> <h:column> <a4j:status startText="Processing...." stopText="Processed." startStyle="color:green" stopStyle="color:red"/> </h:column> <h:column> <h:outputText value="Updated Values : "/> <h:outputText value="#{richBean.name}"/> <h:outputText value="#{richBean.status}"/> </h:column> </h:panelGrid> </f:view> </body> </html>
JavaBeatRichfacesBean.java
package javabeat.net.richfaces; import java.util.HashMap; import java.util.Map; public class JavaBeatRichfacesBean { private String name; private Integer empId; private String status; public Integer getEmpId() { return empId; } public void setEmpId(Integer empId) { this.empId = empId; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void update(){ Map<integer,String> map = new HashMap<integer,String>(); map.put(1, "Employee One"); map.put(2, "Employee Two"); map.put(3, "Employee Three"); map.put(4, "Employee Four"); this.name = map.get(this.empId); if (this.name == null || this.name.trim().length() == 0) { this.status = "No Matching Found"; } } }
faces-config.xml
<?xml version='1.0' encoding='UTF-8'?> <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> <managed-bean> <managed-bean-name>richBean</managed-bean-name> <managed-bean-class>javabeat.net.richfaces.JavaBeatRichfacesBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> </faces-config>