Every JSF page as described has various components made with the help of JSF library. JSF may contain h:form, h:inputText, h:commandButton, etc. Each of these are rendered (translated) to HTML output.
This process is called encoding. The encoding procedure also assigns each component with a unique ID assigned by framework. The ID generated is random.
After creating JSF components, it is also necessary for each component to be rendered(displayed) to the client so that it can be visible to the client?s device. Each of the tag gives rise to an associated
component. A renderer is a type of class that is responsible for encoding and decoding components. Encoding displays the component while decoding translates the user?s input into components value i.e. transform it into values the component can understand.