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

JSF Java Discussion :

Mon Autocomplete en Java ee ne fonctionne pas sous JSF


Sujet :

JSF Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Mon Autocomplete en Java ee ne fonctionne pas sous JSF
    Bonjour tout le monde
    J'ai un sérieux problème qui me tracasse depuis des semaines sous java ee.
    J'ai une BD sous postgreSql qui contient les tables Établissement , Inspection et CentreEcrit. Je veux saisir un Centre d’Écrit en tenant compte de l'inspection et de Établissement. Sur ma vue je selectionne l'Inspection mais je veux que le champs de l’Établissement soit autocomplete. pour se faire, dans ma couche metier j'ai creer une Methode listerAutocomplete :
    Code que voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    @Override
        public List<Etablissement> listerAutocomplete(String queryEta) {
            String jpql ="SELECT e FROM Etablissement e "
                    + "WHERE UPPER(e.libelleEtablissement) LIKE UPPER(:libelleEtablissement)";
            Query query = this.em.createQuery(jpql);
            query.setParameter("libelleEtablissement", queryEta + '%');
            return query.getResultList();
        }
    Dans mon bean CentreEcritBean voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public List<Etablissement> completeEtablissement(String query){
               return etablissementService.listerAutocomplete(query);
          }
    Et dans ma page Jsf mon champs autocomplete ne marche pas quand je tape une lettre correspondant à un établissement . Et dans mon glassFish j'ai cette erreur:
    Précis: SELECT id_etablissement, actif, code_etablissement, libelle_etablissement, version, id_type_etablissement FROM etablissements WHERE UPPER(libelle_etablissement) LIKE UPPER(?)
    bind => [%]
    Depuis là j suis bloqué sans savoir comment m'en sortir.
    Merci de bien vouloir m'aider

  2. #2
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par Mocktar Voir le message
    bind => [%]
    Est-ce que queryEta est bien renseigné ? On dirait que le "bind" se fait sur '%'.
    La requête sql marche t-elle avec '%' en paramètre ?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    je tiens à rappeler que j ne suis pas un professionel en java ee mais
    au faite le queryEtat est le debut de libelleEtablissement, et '%' n'est que la suite, il es censé proposé la suite de ce que l'utilisateur a commencé par taper
    Merci de m'aider

  4. #4
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Vu que le problème concerne une requête, les 2 premiers points à vérifier sont :
    - le paramètre est-il bien transmis ? (quelle est la valeur transmise pour queryEta ?)
    - la requête générée est-elle correcte et tolère-t-elle un paramètre queryEta nul ? (avec une restriction en LIKE UPPER(%)) ?

    Comme je n'utilise pas PostgreSQL je ne peux pas tester. Mais rien qu'en écrivant
    LIKE UPPER(%) j'ai un doute. D'où la première question sur queryEta.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Merci pour vos apports pour une solution. Au faites la valeur du parametre queryEtat est un String qui peut etre le debut du nom d'un etablissement scolaire : Quand l'utilisateur commence par taper la lettre "c" l'autocomplete doit etre en mesure de lui derouler tous les etablissement ayant le nom commencant par cette lettre et ainsi de suite.
    Pour le test vous pouvez utiliser n'importe quelle BD autre que PostgreSql.

  6. #6
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par Mocktar Voir le message
    Pour le test vous pouvez utiliser n'importe quelle BD autre que PostgreSql.
    Et vous, avez-vous testé sur votre base, en sql, directement ??

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    au faite j'ai teste mais jusqu'ici la requette ne fonctionne pas meme avec ce code que voici:
    SELECT e FROM Etablissement e WHERE e.libelleEtablissement LIKE :libelleEtablissement
    Pourtant j'ai la conviction que c'est correcte, du coup je suis confus

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    j'ai l'impression que c'est un problème d'ajax au niveau de jsf danc ce code que voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <div class="form-group col-md-6">
                                            <p:outputLabel for="etablissement" value="Etablissement"/>
                                            <p:autoComplete id="etablissement" 
                                                            value="#{centreEcritBean.etablissement}"
                                                            completeMethod="#{centreEcritBean.completeEtablissement}"
                                                            var="etabli" forceSelection="true"
                                                            itemLabel="#{etabli.libelleEtablissement}"
                                                            itemValue="#{etabli}" converter="omnifaces.SelectItemsConverter"/>
     
     
    </div>
    es ce qu'il y a pas à utiliser la balise <p:ajax/> pour retrouver la valeur que prend le "%". Enfin je suis troublé

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    je viens de tester cestte requette:
    SELECT e FROM Etablissement e WHERE UPPER(e.libelleEtablissement) LIKE UPPER(:libelleEtablissement)
    cela marche dans mon IDE. mais le serveur GlassFish me renvoie tjr la meme erreur :

    Précis: SELECT id_etablissement, actif, code_etablissement, libelle_etablissement, version, id_type_etablissement FROM etablissements WHERE UPPER(libelle_etablissement) LIKE UPPER(?)
    bind => [%]

Discussions similaires

  1. [Imprimante] mon imprimante ne fonctionne pas sous DOS
    Par med_med dans le forum Périphériques
    Réponses: 3
    Dernier message: 13/08/2010, 11h23
  2. [MySQL] Mon moteur de recherche ne fonctionne pas sous ie
    Par ploufleouf74 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 27/07/2009, 12h21
  3. Mon onmouseover ne fonctionne pas sous IE8
    Par idamarco dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/03/2009, 12h35
  4. Mon LPB2900 ne fonctionne pas sous WIN98
    Par mizou1978 dans le forum Périphériques
    Réponses: 1
    Dernier message: 30/01/2008, 00h31
  5. Java ne fonctionne pas sous Firefox
    Par Info-Rital dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 29/07/2004, 23h37

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