Java Server Faces nos permite crear nuestros propios componentes.
xmlns:avbravo="http://xmlns.jcp.org/jsf/composite/avbravo"
xmlns:extensions="http://xmlns.jcp.org/jsf/composite/avbravo/extensions"
<ui:composition template="/layout/template.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:b="http://bootsfaces.net/ui"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:avbravo="http://xmlns.jcp.org/jsf/composite/avbravo"
xmlns:extensions="http://xmlns.jcp.org/jsf/composite/avbravo/extensions">
<avbravo:inputText value="#{rolController.rol.rol}" id="rol" label="#{msg['field.rol']}" />
<extensions:autocompleterol listener="#{rolController.handleSelect}"
value="#{rolController.rolSelected}"
itemLabel=" #{p.idrol}"
field="idrol"
update=" :form:msgs,:form:dataTable"/>