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 :

NullPointerException dans l'execution


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 65
    Par défaut NullPointerException dans l'execution
    bonjour,
    j'ai cette action qui m'envoie une erreur de type NullPointerException a la ligne
    indiqué par la couleur rouge:
    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
     
    ublic class WelcomeAction extends Action {
        
        public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception  {
            
            try {
                // alimentation du bean depuis la bdd
                List<Category> allCategories = CategoryDAO.loadAllCategories();
                request.getSession().setAttribute("categories", allCategories);
                RechercherForm rf = new RechercherForm ();
                rf.setActif ("");
                rf.setAbonnee ("");
                rf.setNpai ("");
                rf.setFiltre ("");
                request.setAttribute("rechercherForm", rf);
                
                // on  récupère le form depuis la session et si il n'est pas null, on appelle la méthode init
                HttpSession session = request.getSession(true);
                RechercherForm _rf =(RechercherForm)session.getAttribute("rechercherForm");
                if(!_rf.equals (null)){
                    _rf.init ();
                }
                
            }
            catch(Exception e) {
                e.printStackTrace();
            }
            return mapping.findForward ("accueil");
        }
        
    }
    je ne sais plus la cause de cette erreur
    veuillez m'aider svp

  2. #2
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 39
    Par défaut
    [/B]
    jawed84 : if(!_rf.equals (null)){
    _rf.init ();
    }
    Tu peux essayer avec :

    if(rf.equals != null){
    _rf.init ();
    }

    .....

  3. #3
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 39
    Par défaut
    pardon, c'etait plutot:

    if(_rf != null){
    _rf.init ();
    }

  4. #4
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    plutot comme ca :
    if(rf!=null){
    rf.init ();
    }

  5. #5
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    lol synchro monalise

  6. #6
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 39
    Par défaut
    plutot comme ca :
    if(rf!=null){
    rf.init ();
    }
    Mais non, en fait la variable recuperée de la session est "_rf" ("rf" est la variable provenant de l'instanciation du formulaire) , c'est pour "_rf" que le test va etre effectué

  7. #7
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    oui le test est sur _rf, j'avais oublie le petit underscore ^^

  8. #8
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 65
    Par défaut
    merci beaucoup, ca me fait resoudre mon probleme mais je veux comprendre les choses. quel est la différence entre les deux expressions?

  9. #9
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 39
    Par défaut
    en fait, la methode equals(..) est utilisée pour faire la comparaison entre 2 string . Mais pour comparer des objets (comme dans le cas ici), on utilise "=" ou "!="

  10. #10
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 65
    Par défaut
    merci pour votre reponse mais j'ai pas convaincue, car parmis les cours que j'ai lu j'ai trouvé "De son côté, equals(), en tant que méthode de la classe racine Object, permet de comparer deux objets entre eux (ou, plus précisément, elle vérifie que les deux références d'objet sont identiques)"

  11. #11
    Membre émérite
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Par défaut
    Citation Envoyé par jawed84 Voir le message
    merci pour votre reponse mais j'ai pas convaincue, car parmis les cours que j'ai lu j'ai trouvé "De son côté, equals(), en tant que méthode de la classe racine Object, permet de comparer deux objets entre eux (ou, plus précisément, elle vérifie que les deux références d'objet sont identiques)"
    La méthode equals() permet de tester l'égalité entre deux instances. Cette égalité est une égalité métier. C'est à dire avec une logique propre à l'objet.
    Pour une String l'égalité métier test si il s'agit de la même chaine de caractères mais par exemple pour une voiture ca pourrait être un test sur la plaque d'immatriculation.

    L'opérateur == ou != effectuent des test d'égalité de réference.
    C'est à dire qu'ils testent si les deux variables réferencent le même objet (ou non)

    Maintenant en ce qui concerne ton problème.
    Pour pouvoir appliquer une méthode sur une variable, celle-ci doit referencer une instance. Si la variable posséde "null" alors java lance une exception (NullPointerException)

    Du coup si _rf vaut null l'instruction _rf.equals(xxxxx) génere une erreur.
    Or si il ne vaut pas null alors forcement l'instruction _rf.equals(null) vaux false

    Pour tester qu'une variable réference une instance, il faut écrire _rf != null

    ++

  12. #12
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 65
    Par défaut
    merci beaucoup, votre reponse etait tres claire.
    merci encore

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

Discussions similaires

  1. Ajouter des ressources dans un executable.
    Par seeme dans le forum C++
    Réponses: 4
    Dernier message: 20/10/2005, 10h21
  2. erreur dans l'execution d'une requete
    Par marsupilami34 dans le forum Requêtes
    Réponses: 4
    Dernier message: 06/09/2005, 16h47
  3. Linux: Inclure les lib dans l'executable
    Par baert dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 02/09/2005, 23h40
  4. [STRUTS][Validation] - Validation dans un execute
    Par SEMPERE Benjamin dans le forum Struts 1
    Réponses: 8
    Dernier message: 07/12/2004, 10h55
  5. Réponses: 10
    Dernier message: 27/08/2002, 23h24

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