IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

composant autocomplete primefaces


Sujet :

avec Java

  1. #1
    Membre régulier Avatar de Feres_agent1116
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Février 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Back-End
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 121
    Points : 85
    Points
    85
    Par défaut composant autocomplete primefaces
    bonjour tout le monde
    j'ai travailler cette semaine sur la technologie primefaces et plus précisément sur le composant autocomplete ..mon souci est que autocomplete travail bien mais il est sensible a la case voici un exemple

    si j'ai une liste qui contient les noms des fabricant "Alcatel","Arobt","AAAAA","gfeAe"
    lorsque je tape 'a' seulement "Alcatel" s'affiche
    par contre lorsque je tape 'A' tous les quatre s'affichent

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     public List<String> complete(String query) {  
            List<String> results = new ArrayList<String>();     
            for (int i = 0; i<list.size(); i++) {  
              if(list.get(i).getNomFabricant().contains(query))
                results.add(list.get(i).getNomFabricant());  
            }  
     
            return results;  
        }
    que je dois faire pour que autocomplete m’affiche les resultat sans aucune distinction minuscule ou majuscule

    merci d'avance

  2. #2
    Membre confirmé
    Avatar de Laine
    Femme Profil pro
    Doctorat informatique
    Inscrit en
    Mars 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Doctorat informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 238
    Points : 646
    Points
    646
    Par défaut
    Bonjour

    Tu peux utiliser la méthode java.lang.String.toLowerCase() pour mettre toutes tes entrées en minuscule avant de les traiter, c'est à dire : query et le nom du fabriquant, ensuite faire tes testes.

    C'est une simple suggestion

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 312
    Points : 533
    Points
    533
    Par défaut
    Bonjour,

    tu peux également améliorer ton test en utilisant ce qu'a dit Laine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(list.get(i).getNomFabricant().contains(query.toLowerCase()) || list.get(i).getNomFabricant().contains(query.toUpperCase()))

  4. #4
    Membre régulier Avatar de Feres_agent1116
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Février 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Back-End
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 121
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Laine Voir le message

    Tu peux utiliser la méthode java.lang.String.toLowerCase() pour mettre toutes tes entrées en minuscule avant de les traiter
    C'est une simple suggestion
    j'ai essaie de faire cette méthode mais le problème juste la première caractère j'aimerais bien profiter d'auton de mots que possible

    voici mon code

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public List<String> complete(String query) {  
            List<String> results = new ArrayList<String>();  
     
            for (int i = 0; i<list.size(); i++) {  
     
            	if(list.get(i).getNomFabricant().startsWith(query.toUpperCase()) || list.get(i).getNomFabricant().startsWith(query.toLowerCase()))
                results.add(list.get(i).getNomFabricant());  
            }  
     
            return results;  
        }

  5. #5
    Membre régulier Avatar de Feres_agent1116
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Février 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Back-End
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 121
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par ludomacho Voir le message
    Bonjour,

    tu peux également améliorer ton test en utilisant ce qu'a dit Laine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(list.get(i).getNomFabricant().contains(query.toLowerCase()) || list.get(i).getNomFabricant().contains(query.toUpperCase()))
    Est ce que lorsque je modifer toute la chaine j'aurais pas de probleme ::
    par exemple la liste contient 'Alcatel' ,'Alcotbi' ,'Nokia' ,"STMicro" et je tape alca
    pour quoi je dois modifier en ALCA !!!est ce que sa marche

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 312
    Points : 533
    Points
    533
    Par défaut
    Effectivement tu risques d'avoir un problème donc il faut que tu transformes ton nomFabricant et ton query tous les 2 soit en UpperCse, soit en LowerCase :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(list.get(i).getNomFabricant().toUpperCase().contains(query.toUpperCase()))

  7. #7
    Membre régulier Avatar de Feres_agent1116
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Février 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Back-End
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 121
    Points : 85
    Points
    85
    Par défaut
    Merci beaucoup pour votre aide je suis vraiment reconnaissant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Composant dans PrimeFaces
    Par sky88 dans le forum JSF
    Réponses: 0
    Dernier message: 29/08/2014, 23h52
  2. Réponses: 3
    Dernier message: 06/06/2014, 17h25
  3. composant autocomplete ajax asp.net 1.1
    Par ouadie99 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 03/12/2008, 18h59
  4. Réponses: 3
    Dernier message: 01/07/2006, 14h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo