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

Struts 1 Java Discussion :

probleme de chargement de données


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 78
    Points : 43
    Points
    43
    Par défaut probleme de chargement de données
    bonjours,
    je travaille avec myeclipse 5.1,strut et hibernate,dans mon application lorsqu'un utilisateur se connecte ,il accède à une fiche ou il des infos qui lui concerne.pour cela j'ai une action avec le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response) {
            GetUserFicheForm getUserFicheForm = (GetUserFicheForm) form;        
    HttpSession session=request.getSession(true);
            
     session.setAttribute("utilisateur", ServiceUser.findUtilisateur(request.getParameter("username")));        
    return mapping.findForward("showFiche");
    }        
    avec ServiceUser une classe ou il y'a la methode findUtilisateur(String),dont le code est:
    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
    public static Utilisateur findUtilisateur(String login)
        {
       Session session = null;
       Transaction tx = null;
    session = HibernateSessionFactory.getSession();
    tx = session.beginTransaction();
        
    List users = new ArrayList();
    int j=0;
    List requsers = session.createQuery("select u from Utilisateur as u ").list();
    for (Iterator iter = requsers.iterator(); iter.hasNext();) {
        users.add((Utilisateur) iter.next());
             j++;
          }
            
    tx.commit();
    Utilisateur[] util =new Utilisateur[j];
    util=(Utilisateur[]) users.toArray(new Utilisateur[0]);
        int i=0;
    
        do
        {
               if(login.equals(util[i].getUsername()))
                {  
                          
       return util[i]; 
                         
                } 
             else
               {
              i++;
                }
             
        }
            while(i< j);
            return null;}
    et le code de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class GetUserFicheForm extends ActionForm {
        
        
        private String nom;
        private String prenom;
        private String grade;
        private String username;
        private String password;
        private String profil;
        private long id;
    //et les getters et setters
    le probleme est que j'ai l'erreur suivante:
    java.lang.NullPointerException
    metier.ServiceUser.findUtilisateur(ServiceUser.java:98
    )

    je croix que le username n'est pas recupereé,mais je comprend pas pourquoi.
    si quelqu'un a une idée,je serai tres reconnaissante,je suis bloquée depuis 3 jours
    merci d'avance

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 246
    Points
    246
    Par défaut
    active le marquage des lignes et regarde à la ligne 98 un de tes objets doit être null alors que tu essaye d'appliquer une méthode par exemple.

    en regardant ton code ça ne m'étonnerais pas que ça vienne de là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    session = HibernateSessionFactory.getSession();
    tx = session.beginTransaction();
    tu devraient essayer de faire quelques tests avant de fairça:
    genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    session = HibernateSessionFactory.getSession();
    if(session!=null){
    ...
    }
    else{
    ...
    }

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Tu peux aussi faire plus simple et tester le login dans ta requête au lieu de faire des boucles de boucles inutiles.
    Ton code sera plus simple et aura plus de chances de fonctionner.

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fr1man Voir le message
    Tu peux aussi faire plus simple et tester le login dans ta requête au lieu de faire des boucles de boucles inutiles.
    Ton code sera plus simple et aura plus de chances de fonctionner.
    +10

    Là, c'est un peu n'importe quoi (si je puis me permettre)
    Tu pourrais utiliser cette forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    session.createQuery("from Utilisateur where login = :login").setParameter("login", login).list() <-- voir uniqueResult() qui semble plus approprié
    et si login est la clé primaire de Utilisateur, tu peux également faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    session.get(Utilisateur.class, login);
    Ensuite, il y a un autre mélange de genre dans ton action avec le "request.getParameter(...)", je suppose que GetUserFicheForm possède un champ login (ou le représentant), tu pourrais utiliser la forme "getUserFicheForm.getLogin()" pour passer le paramètre...

    Peux-tu montrer le code de la page de login également ?

    A+

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 78
    Points : 43
    Points
    43
    Par défaut
    vous aviez raison,j'ai resolu le probleme en changeant le code de la methode findUserByUsername(String)comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public static List findUserByUsername(String username){
            UtilisateurDAO dao=new UtilisateurDAO();
            List list=dao.findByUsername(username);
     
            return list;    
        }
    et l'action:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
        GetUserFicheForm getUserFicheForm = (GetUserFicheForm) form;
     
            HttpSession session=request.getSession(true);
            session.setAttribute("utilisateur", ServiceUser.findUserByUsername((String) request.getSession().getAttribute("userName")));
            return mapping.findForward("showFiche");
     
     
                }
    Merci bcp pour votre aide

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

Discussions similaires

  1. probleme de chargement de données XML
    Par kaskroute dans le forum C#
    Réponses: 1
    Dernier message: 06/12/2010, 14h30
  2. Réponses: 4
    Dernier message: 23/05/2009, 21h59
  3. probleme de chargement de données dans un model
    Par ridondo dans le forum JPA
    Réponses: 0
    Dernier message: 21/11/2008, 16h19
  4. probleme de chargement de donnes mysql hibernate 3
    Par mathieujava dans le forum Hibernate
    Réponses: 3
    Dernier message: 22/01/2007, 15h06
  5. Réponses: 2
    Dernier message: 20/11/2006, 14h35

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