The a4j:param component extends the regular f:param tag. The primary extension is the ability to assign a value to a property on a managed bean directly using the assignTo attribute. Using this feature you can update model values without invoking a single line code.
<!DOCTYPE html> <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich"> <h:form id="form"> <rich:panel> <h:panelGrid columns="2"> <a4j:commandButton value="Set Name to Alex" render="rep"> <a4j:param value="Alex" assignTo="#{userBean.name}" /> </a4j:commandButton> <a4j:commandButton value="Set Name to John" render="rep"> <a4j:param value="John" assignTo="#{userBean.name}" /> </a4j:commandButton> </h:panelGrid> </rich:panel> <br /> <rich:panel> <h:outputText id="rep" value="Selected Name:#{userBean.name}" /> </rich:panel> </h:form> </ui:composition>