<jmoordbjsf:autocomplete>
Para los autocomplete usamos <jmoordbjsf:autocomplete que generara los componentes <p:autocomplete de primefaces> estos estan optimizados para ser usados con jmoordb.
Los métodos estan definidos en el Services, solo tenemos que inyectarlo al Controller.
@Inject
RolServices rolServices;
En el Services definimos anteriormente, el pasara jmoordb los atributos necesarios como el campo de búsqueda , cantidad de caracteres a partir del cual iniciar y realizara la búsqueda en la colecciòn y devolvera un List<T> con el resultado.
public List<Rol> complete(String query) {
List<Rol> suggestions = new ArrayList<>();
try {
suggestions=repository.complete(query);
} catch (Exception e) {
JsfUtil.errorMessage("complete() " + e.getLocalizedMessage());
}

field es el campo que deseamos buscar
itemLabel es la etiqueta que sera mostrada.
completeMethod esta definido en el Services
<p:outputLabel value="#{msg['field.idrol']}"/>
<jmoordbjsf:autocomplete converter="#{rolConverter}"
completeMethod="#{rolController.rolServices.complete}"
labeltip1="#{msg['field.idrol']} #{p.idrol}"
labeltip2="#{msg['field.rol']} #{p.rol}"
listener="#{rolController.handleAutocompleteOfListXhtml}"
value="#{rolController.rolSearch}"
itemLabel="#{p.idrol}"
field="idrol"
update=":form:dataTable"/>
<p:outputLabel value="#{msg['field.rol']}"/>
<jmoordbjsf:autocomplete converter="#{rolConverter}"
completeMethod="#{rolController.rolServices.complete}"
labeltip1="#{msg['field.idrol']} #{p.idrol}"
labeltip2="#{msg['field.rol']} #{p.rol}"
listener="#{rolController.handleAutocompleteOfListXhtml}"
value="#{rolController.rolSearch}"
itemLabel=" #{p.rol}"
field="rol"
update=":form:dataTable"/>
Last updated
Was this helpful?