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 :

verification avec un champ d ' une BD


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Par défaut verification avec un champ d ' une BD
    Bonjour,

    j ' essaye de faire une page de connexion qui me permettra d' accéder a mon application.

    Les personnes pouvant se connecter se trouvent dans une base de donnée et
    j ' a dans ma page jsp un champ nom qui vérifie dans la BDD si le nom est déjà existant ou pas

    j ' ai testé la fonction ci contre afin de comparer le nom saisi et celui present dans la BD

    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
    public class UtilisateurControleur {
     
     
     
     
    	private Utilisateur loggueUtilisateur=new Utilisateur();
     
     
    	private UtilisateurDAO dao= new UtilisateurDAO();
     
    	public String  verifierUtilisateur()
    	{
    		List<Utilisateur> utilisateursListe = dao.listerTousUtilisateurs();
            for(int i = 0 ; i<utilisateursListe.size();i++ ){
     
               if (loggueUtilisateur.getNom().equals(utilisateursListe.get(i).getNom())){
            	   System.out.println(utilisateursListe.get(i).getNom());
            	   FacesContext contextId = FacesContext.getCurrentInstance();
       			   contextId.addMessage("connexion:nom",new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Connexion reussie"));
     
               }
     
               else
            	   {return null;}
     
            }
            return "consulterUsers";
     
     
    	}
    or ca me renvoi toujours "consulterUsers"( comme si il ne passait jamais dans mon if) qui est message me linkant vers une autre page et je vois pas ou je pourrai me planter dans ma fonction

    ma fonction listerTousUtilisateur me renvoi une liste des utilisateurs presents dans la BD

    mon champ permettant la saisie du login est concu ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <ice:outputText value="Nom d ' utilisateur" id="nom"></ice:outputText><ice:inputText  value="#{controleur.loggueUtilisateur.nom}" /><br/>
       <ice:message for="nom" tooltip="true" showDetail="true" showSummary="true" rendered="true"/>
     
      <ice:commandButton  action="#{controleur.verifierUtilisateur}" value="Se connecter"/>
    merci de votre aide

  2. #2
    Membre éprouvé Avatar de juridakus
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Maroc

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 82
    Par défaut Salut
    Pas très optimal ton code! pourquoi charger tous les 15000 utilisateurs de la base de donnée pour en identifier 1 seul
    Sinon tu pourrai rajouter simplement un return "ok" dans if (){ ... }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    For (...){
    if (loggueUtilisateur.getNom().equals(utilisateursListe.get(i).getNom())){
            	   System.out.println(utilisateursListe.get(i).getNom());
            	   FacesContext contextId = FacesContext.getCurrentInstance();
       			   contextId.addMessage("connexion:nom",new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Connexion reussie"));
     
    	return "ok";	
               }
    }
    ou une instruction break; si tu as d'autres traitements à faire en dehors du For avant de continuer. cela devrait t'éviter d'avoir ton éternel "consulterUsers".

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 67
    Par défaut
    salut

    merci de ton aide
    Je n ' ai pas beaucoup d ' user dans la BD donc cette solution me convient pour l ' instant :p

    Le problème, c ' est que ma condition n ' est jamais vérifié justement , et je voulais savoir si c ' était un problème d ' algorithme.

    Pour info ma fonction listerTousUtilisateur est conçue ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public List<Utilisateur> listerTousUtilisateurs() {
    		List<Utilisateur> utilisateurs = getEntityManager().createQuery("select u from Utilisateur u").getResultList();
     
    		return utilisateurs;
    	}
    merci de votre aide

Discussions similaires

  1. INSERER DU TEXTE AVEC DES CHAMPS DANS UNE REQUETE SUR sql Srv 2000
    Par sauceaupistou dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/03/2007, 10h02
  2. Requête SELECT avec deux champs dans une colonne ??
    Par fredhali2000 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 08/06/2006, 10h41
  3. Réponses: 10
    Dernier message: 20/04/2006, 01h52
  4. [C#] Remplir une combobox avec le champs d'une table Access
    Par Damsou dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/06/2005, 15h31
  5. UPDATER le champ d'une table 1 avec le champ d'une table 2
    Par alain.dissoir dans le forum Oracle
    Réponses: 2
    Dernier message: 08/06/2005, 13h07

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