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 :

Comment effectuer un moteur de recherche en JSF?


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 167
    Par défaut Comment effectuer un moteur de recherche en JSF?
    Bonjour,
    je bosse ces jours sur un projet J2EE (base de données MySQL+jpa +DAO+JSF),
    j'ai réussi à faire les opérations CRUD; mais, ce que je n'arrive pas à le faire, c'est la recherche de telle sorte que le client c'est lui qui va choisir.
    Donc, je suis à le recherche de code jsf qui permet d'effectuer un moteur de recherche.
    svp, est ce que vous pouvez m'aider?
    j'ai encore une semaine à terminer mon projet, j'ai fait des recherches concernant mon problème, mais, je trouve surtout que les fonctions CRUD.
    je suis reconnaissant de vos aide.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    jsf se charge de la gestion des formulaire. Si t'as des opérations de recherche à faire, à priori, c'est dans les actions de tes bean que tu dois les faire, après y a plus qu'à présenter le résultat dans un datatable, par exemple.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 167
    Par défaut
    Bonsoir,
    merci tchize_ pour ton aide.
    En fait, je sais que les opérations de recherche se fait dans un bean, par exemple comme ceci: (la recherche par nom)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public Employe getUser(String nom) {
    		 Query query = em.createNamedQuery("Employe.findByNom");
    	        query.setParameter("nom",nom);
    	        Employe user = (Employe) query.getSingleResult();
    	        return user;
    	}
    je sais que le résultat de la recherche doit être dans un datatable, et on doit avoir aussi un "inputText" (qui doit prendre le nom choisi par l'utilisateur) et un bouton pour lancer la recherche (getUser)
    Mais, je n'arrive pas à le faire en jsf.
    merci d'avance pour vos aides.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    qu'est-ce que tu n'arrive pas à faire en jsf, je comprend pas. Tu me dit que tu sais faire la recherche, que tu sais afficher un input text et un datatable. Après c'est juste une question de faire pointer les value= des composant sur les propriétés des beans, comme pour tout formulaire jsf

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 167
    Par défaut
    Bonsoir,
    peut être j'ai mal expliqué mon problème, j'explique mieux : j'ai une méthode de recherche dans beans, mais je sais pas comment on fait en jsf.
    svp, y a -t- il quelqu'un qui peut m'aider, en fait, j'ai cherché sur le Net mais, je ne trouve pas des exemples des codes jsf qui permet de faire la recherche.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    y a pas de "code qui fait de la recherche", y a juste du code jsf qui affiche les données présentes dans tes beans, je vois pas ce qui coince. T'arrive pas à lire ton bean pour afficher les résultat?

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 167
    Par défaut
    Bonjour,
    je n'ai pas encore résolu mon problème, peut être ceci semble évident pour quelque uns , mais, je suis débutant, et c'est la première fois que j'essaye de faire la recherche surtout que les enregistrements dans la base de données sont nombreux.
    j'essaye maintenant de faire une recherche simple, voici, mon problème: j'ai une longue liste de patients , je vais faire la recherche des informations sur les patients qui ont un nom particulier (tapé par l'utilisateur)
    Voici la méthode qui permet de le faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public List<Patients> SetSearchPatient(String nom) {
    		Query query = em.createQuery("SELECT a FROM Patients a  WHERE a.nom Like '"+nom+"'");
    		query.setParameter("nom", nom);
                    return  query.getResultList();
    	}
    Voici aussi le code jsf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     <h:form>
                                 <h3 class="recherche">RECHERCHE</h3>
                       <h:inputText value="#{patientmanager.nom}"/>
     
                      <h:commandButton value="Rechercher" action="Rechercher"/>
     
     
                <h2><h:outputText value="Informations sur le patient"/></h2>
                <h:dataTable value="#{patientmanager.searchPatient}" var="item"  rules="all" border="1" cellpadding="5" cellspacing="3" rendered="true">
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Identifiant"/>
                        </f:facet>
                        <h:outputText value=" #{item.id}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Nom"/>
                        </f:facet>
                        <h:outputText value=" #{item.nom}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Prénom"/>
                        </f:facet>
                        <h:outputText value=" #{item.prenom}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Date de Naissance"/>
                        </f:facet>
                        <h:outputText value="#{item.dateNaiss}">
                            <f:convertDateTime pattern="MM/dd/yyyy" />
                        </h:outputText>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Sexe"/>
                        </f:facet>
                        <h:outputText value=" #{item.sexe}"/>
                    </h:column>
                </h:dataTable>
            </h:form>
    je ne sais pas comment lier le bouton "rechercher" avec "dataTable" qui doit etre affiché lors du simple clic sur ce bouton.
    de plus lors de l'exécution (je sais que le code n'est pas bien fait), une erreur s'affiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.servlet.ServletException: The class 'monpkg.DAO.PatientsManagerBean' does not have the property 'searchPatient'.
    svp, quelqu'un peut m'aider, je le remercie infiniment.

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    comme pour tou bean jsf, tu dois comprendre la notion de getters/setters. Les setters renvoient void, les getters ne prennet pas de paramètres. T'as plusieurs possibilités

    soit, tu faire un get/setSearchPatient, de type String que tu utilise our le formulaire
    et un getSearchResult() de type List<Patient> qui effectue la recherche et retourne la liste de patients.

    Dans ce premier cas, il est recommandé que tu fasse une mise en cache dans le bean du résultat de getSearchResult avant de le retourner, afin de ne pas faire la query hibernate à chaque appel


    soit tu fait un get/setSearchPatient, de type String que tu utilise pour le formulaire
    une methode "public String search()" que tu utilise comme action du bouton et qui effectue la recherche (en la stockant dans le bean)
    et un méthode List<Patient> getSearchResult() qui retourne le résultat, et utilisé par datatable.

    Les deux techniques sont très proches.

Discussions similaires

  1. [MySQL] comment intergrer un moteur de recherche interne ?
    Par toufik1986 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 16/01/2008, 21h41
  2. [Google] Comment effectue-t-il sa recherche ?
    Par makaphrodite dans le forum Internet
    Réponses: 2
    Dernier message: 29/07/2007, 19h22
  3. Comment construire un moteur de recherche
    Par zizo89 dans le forum Delphi
    Réponses: 1
    Dernier message: 06/05/2007, 21h18
  4. [Tableaux] comment faire un moteur de recherche en php
    Par lindouchine dans le forum Langage
    Réponses: 4
    Dernier message: 23/03/2006, 23h14
  5. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 15h41

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