<p:autocomplete> con Converter

<p:autocomplete> con Converter

Converter antes de JSF 2.3 no soportan CDI

, por lo que debemos usarlo a través de @Named y @RequestScoped

En el formulario sin jsf 2.3

            <f:converter binding="#{actividadesConverter}" />
 <p:outputLabel  rendered="#{!actividadesController.nuevoregistro}"
                                                value="#{msg.actividad}" for="actividad" />


 <p:autoComplete  scrollHeight="250"   dropdown="true"  size="45"                                                    rendered="#{!actividadesController.nuevoregistro}"
                                                 value="#{actividadesController.selected}"  
                                                 completeMethod="#{actividadesController.actividadesServices.completeActividad}"  
                                                 var="p"  
                                                 itemLabel="#{p.actividad}"  itemValue="#{p}" 
                                                 forceSelection="true"> 
                                    <f:converter binding="#{actividadesConverter}" />
                                    <p:ajax event="itemSelect" listener="#{actividadesController.handleSelect}" update=":form:panel,:form:growl" />  
                                    <f:facet name="itemtip">
                                        <h:panelGrid columns="1" cellpadding="5">
                                            <h:outputText value="#{p.actividad}" />
                                            <h:outputText value="#{p.tipo}" />
                                            <h:outputText value="#{p.idactividades}" />
                                        </h:panelGrid>
                                    </f:facet>
 </p:autoComplete>

En el converter sin jsf 2.3

Debemos usar las anotaciones

@Named

@RequestScoped

Crear el EJB SessionBean Services

Es idéntico para JSF 2.3 y anteriores, alli colocamos los complete que seran invocados desde los formularios

En el Controller

En cada controller donde se usará el autocomplete debemos injectar el Services y generar los métodos set/get

Injectar el services

JSF 2.3 Soporta CDI en los Converter

Crear al converter con jsf 2.3

Usar @FacesConverter(value = "actividadesConvertidor")

En el formulario con jsf 2.3

Last updated

Was this helpful?