Ajax Action
a4j:ajax
a4j:commandButton
a4j:commandLink
a4j:actionListener
a4j:jsFunction
a4j:poll
a4j:push
a4j:param
Ajax Queue
a4j:queue
a4j:attachQueue
Ajax Output/Containers
a4j:outputPanel
a4j:status
a4j:region
a4j:mediaOutput
a4j:log
Validation
Client Side Validation
rich:graphValidator
rich:message
rich:messages
rich:notify
Data Iteration
a4j:repeat
rich:dataTable
rich:extendedDataTable
rich:collapsibleSubTable
rich:dataScroller
rich:list
rich:dataGrid
Trees
rich:tree
Tree Adaptors
Output/Panels
rich:chart
rich:panel
rich:togglePanel
rich:tabPanel
rich:collapsiblePanel
rich:accordion
rich:popupPanel
rich:progressBar
rich:tooltip
Menus
rich:panelMenu
rich:toolbar
rich:contextMenu
rich:dropDownMenu
Inputs
rich:autocomplete
rich:calendar
rich:editor
rich:inputNumberSlider
rich:inputNumberSpinner
rich:inplaceInput
rich:fileUpload
Selects
rich:inplaceSelect
rich:select
rich:orderingList
rich:pickList
Drag and Drop
Drag and Drop
Miscellaneous
Standard elements skinning
rich:placeholder
RichFaces functions
rich:focus
rich:componentControl
rich:hashParam
rich:hotKey
rich:jQuery

The a4j:region component is used to mark zones which should be processed during Ajax requests without using execute definitions for Ajax behaviors or components. This allows the processing definitions and component identifiers to be decoupled, and declarative wrapping with the a4j:region tag is used instead.

In RichFaces 3.3, the whole view was processed if no regions were specified, as the ViewRoot itself was the region by default. In RichFaces 4.x, all the controls are set to execute="@this" by default according to JSF 2 specifications. However, if the controls wrapped with the a4j:region tag and have no execute definitions, they use execute="@region" instead.

The example below contains two similar user info panels. The button inside the first panel will not work, as it does not use execute declarations; by default it uses execute="@this". A separate definition is needed to make the button work properly. The second panel has its inputs and button wrapped in an a4j:region. This means that the h:commandButton works without any additional execute definitions.

User Info Panel explicitly executed by identifier
User Name:
User email:
Echo Panel
Entered name:
Entered email:
User Info Panel with Region
User Name:
User email:
Echo Panel
Entered name:
Entered email:

Note: a4j:commandButton/Link use execute="@form"" as their default and so would work as expected in both panels. They also integrate in the core Ajax functionality, and do not require additional a4j:ajax tags.