RichFaces is an open source, advanced user interface component framework which is used to easily integrate Ajax capabilities into JavaServer application.
It is designed and developed by Jboss. It is implemented as a component library which adds Ajax capability into existing pages. So, a developer doesn't need to write any JavaScript or JQuery code.
RichFaces uses several parts of the JSF 2 framework including the lifecycle, validation, conversion facilities and management of resources.
RichFaces 4 supports full JSF 2 integration and uses standard web application technologies such as JavaScript, XML (Extensible Markup Language), and XHTML (Extensible Hypertext Markup Language).
RichFacesprovides calendar component that we can implement in the JSF file.
It is used to enter a date and time through a pop-up calendar. The pop-up calendar can navigate through months and years. We can also customize its look and feel.
The <rich:calendar>component requires only one value attribute which holds the current selected date.
RichFaces provides the <rich:fileUpload> component which is used to upload files to the server. It provides lots of attributes that we can use in our application.
InplaceSelect component is similar to the <rich:inplaceInput> component, except that it uses a drop-down selection box to enter text instead of a text field.
This component is a single-line input field with buttons to increase and decrease a numerical value. It is used to input values by using provided spinner.
We can use it in an auto-completing mode, where the values in the drop-down list are provided dynamically using either the autocompleteMethodor autocompleteListattributes.
RichFaces provides <rich:orderingList> component for ordering items in a list at client-side. We need to use the value attribute to the list to be ordered.
It is used to select items from a list. It allows us to change order of selected items at client-side. We can add, remove items from the source list to the target list and vice-versa.
It is a bordered panel with an optional header. For basic usage, it does not require any attribute. A <rich:panel> without any attributes defined renders a bordered region with no header.
We should use header attribute to specify the text to appear in the header.
It is used to render a table which displays data in tabular form. It works with the <rich:column> and <rich:columnGroup> components to list the contents of a data model.
This component acts as a child element to the <rich:dataTable>. It iterates through the child collections in the currently iterated object to create detailed tables.
RichFaces provides <rich:list> to render a list of items. We can create numerically ordered list, an un-ordered, bullet-point list etc. It uses a data model for managing the list items which can be updated dynamically.
The <rich:dataScroller> is used for navigate through multiple pages of tables. It must be places in a facet of the table. We can also use the for attribute to bind parent tables to the scroller.
The <rich:dropDownMenu> component is used to create a drop-down or a hierarchical menu. We can use it with the <rich:toolbar> component to create menus in an application's toolbar.
The <rich:messages> component works similar to the <rich:message> component and automatically rendered after an Ajax request. It is used to display all the validation messages of the current web page collectively.
It is used to define the position of messages at the web page. Messages displayed by <rich:notify> or <rich:notifyMessage> are displayed in top-right corner of the web page by default.
Progress Bar is used to display the status of a process. It can update either through Ajax or on the client side, and the look and feel can be fully customized.
It is used to provide an informational tool-tip. We can attach tool-tip to any control and is displayed when hovering the mouse cursor over the control.