Comment utiliser Primefaces de saisie semi-automatique avec un POJO Liste et un POJO la propriété de la sélection de la valeur

Dans notre projet, nous voulons remplacer une <h:selectOneMenu> avec Primefaces est <p:autocomplete>. La sélectionnez les éléments sont d'une liste de Pojo (Entités JPA). La différence pour les exemples donnés dans primefaces vitrines est, que nous voulons la propriété de clé primaire (id) de l'entité de sélection de la valeur, de sorte qu'il peut être facilement transmis de visualiser les param:

<f:metadata>
    <f:viewParam name="playerId" value="#{playerPreRenderViewListener.searchCriteria.playerId}" />
    <f:viewParam name="year" value="#{playerPreRenderViewListener.searchCriteria.year}" />
</f:metadata>
<h:form>
    <h:inputText value="#{playerPreRenderViewListener.searchCriteria.year}"/>
    <p:autoComplete var="player" itemLabel="#{player.name}" itemValue="#{player.id}"
        completeMethod="#{playerBean.completePlayer}" forceSelection="true"
        converter="#{playerConverter}" 
        value="#{playerPreRenderViewListener.searchCriteria.playerId}">
    </p:autoComplete>
    <h:commandButton value="Submit" action="showTeam?faces-redirect=true&amp;includeViewParams=true" />
</h:form>

Malheureusement l'exemple ci-dessus va conduire à une PropertyNotFoundException:

itemLabel="#{joueur.nom}": la Propriété 'name' non trouvé sur le type java.lang.Long'

Le problème est que le var attribut est de Type Long et pas Player. Lors de l'utilisation d'un simple <h:selectMenu> il fonctionne en conjonction avec <f:selectItems>:

<f:selectItems var="player" value="#{playerBean.listPlayers}" itemLabel="#{player.name}" itemValue="#{player.id}" />

Quelqu'un sait comment gérer ce problème?

Pouvez-vous fournir l'extrait de code de votre lecteur converter, s'il vous plaît? J'ai couru dans le même problème et que vous voulez utiliser un convertisseur pour cela.

OriginalL'auteur fischermatte | 2012-03-09