[PrimeFaces] AutoComplete qui se perd
Bonjour,
J'ai effectué le code comme présenté sur le site de Primefaces pour faire de l'auto-complétion (en itemtip) mai sje me retrouve avec un problème que je ne comprend pas. Je m'explique : quand je passe en debug, je vois que je récupère bien la liste de mots que je doit récupérer, je passe bien dans le "converter", mais un fois sur le return de ce dernier, la fonction semble se perdre et je n'arrive jamais dans "chain.doFilter(request, response);" de mon filtre.
Voici mon code :
Dans ma page xhtml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
<h:form style="padding: 5px; margin: 5px; margin-top: 10px;">
<p:autoComplete id="autoCompAsso" value="#{autoComp.selectedAtt}" completeMethod="#{autoComp.completTerm}" var="t"
itemLabel="#{t.valeur}" itemValue="#{t.id}" converter="termConverter"
forceSelection="true">
<f:facet name="itemtip">
<h:panelGrid columns="2" cellpadding="5">
<f:facet name="header">
<p:graphicImage value="#{t.url}" />
</f:facet>
<h:outputText value="Nom : " />
<h:outputText value="#{t.valeur}" />
<h:outputText value="Domaine : " />
<h:outputText value="#{t.GroupValeur}" />
<h:outputText value="Definition : " />
<h:outputText value="#{t.definition}" />
</h:panelGrid>
</f:facet>
</p:autoComplete><br/><br/>
<p:commandButton id="cbAjTA" value="Ajouter" styleClass="styleButton" />
</h:form> |
Dans la classe qui contient les informations d'auto-complétion :
Code:
1 2 3 4 5 6 7
|
private String id = "";
private String valeur= "";
private String GroupValeur = "";
private String definition = "";
//Getters et setters ... |
Le bean d'auto-complétion :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
@ManagedBean(name = "autoComp", eager = true)
@SessionScoped
public class AutoCompletBean {
private ObjetAutoCompletion selectedAtt;
// La fonction qui retourne une liste d'attributs selon la chaine de caractère
public ArrayList<NodeAutoCompletion> completTerm(String query) {
ArrayList<NodeAutoCompletion> liste = new helper().getAutoCompletionTerm("co", query);
return liste;
} |
Et le convertisseur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
@FacesConverter("termConverter")
public class TermeConverter implements Converter{
@Override
public Object getAsObject(FacesContext fc, UIComponent uic, String string) {
return null;
}
@Override
public String getAsString(FacesContext fc, UIComponent uic, Object o) {
if(o == null || o.equals("")) {
return "";
} else {
return (String)o;
}
}
} |
Je retourne null avec "getAsObject" car je ne passe pas dans cette fonction (je ne récupère jamais l'objet entier mais son identifiant).
Voilà voilà, si quelqu'un voit ce que bloque je lui en serait très reconnaissante ! Merci d'avance :)