2009-11-05 8 views
2

J'essaie d'utiliser une liste de SelectItems avec le composant suggestionBox de RichFaces. Le problème est que j'ai besoin de stocker l'identifiant plutôt que l'étiquette du SelectItem. Il semble que le suggestionBox stocke toujours l'étiquette et cela cause un problème. Y a-t-il un moyen de sortir de ce problème?Boîte à suggestions Richfaces

Répondre

5

J'utilise quelque chose comme ceci:

<h:inputText 
    id="suggest" 
    value="#{someBean.someStringValue}" 
    converter="#{myStringValueConverter}"> 
    <a:support event="onblur" ajaxSingle="true"/> 
</h:inputText> 

<rich:suggestionbox for="suggest" 
    suggestionAction="#{suggestionInstance.suggestion}" 
    var="s" 
    fetchValue="#{s.someValue}" 
    ajaxSingle="true"> 
    <h:column> 
     <h:outputText value="#{s.anotherValue}"/> 
    </h:column> 
    <h:column> 
     <h:outputText value="#{s.yetAnotherValue}"/> 
    </h:column> 
    <a:support event="onselect" ajaxSingle="true" reRender="target"> 
     <f:setPropertyActionListener value="#{s}" target="#{someBean.someObject}" /> 
    </a:support> 
</rich:suggestionbox> 

Le setPropertyActionListener fait le travail que vous recherchez. J'ai également un convertisseur sur mon texte d'entrée afin que l'utilisateur puisse simplement taper quelque chose (les codes d'emplacement de l'ONU dans mon exemple) et je peux essayer d'analyser ceci dans le convertisseur à un objet.