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 struts modification


Sujet :

Struts 1 Java

  1. #1
    Provisoirement toléré
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Points : 79
    Points
    79
    Par défaut Probleme struts modification
    bonjour

    lorsque je klik sur le lien de modification je dois avoir

    une page remplit par les information à Modifier!

    au contraire moi je recoit une page vide et le message

    sur la console de MyEclipse est :



    11:36:53,950 ERROR [action]:253 - "Servlet.service()" pour la servlet action a généré une exception
    java.lang.NullPointerException
    at ma.cor.soft.pfe.metier.MetierManager.saveActivite(MetierManager.java:267)
    at ma.cor.soft.pfe.action.RechercherAction.saveActivite(RechercherAction.java:145)

    quand j affiche les valeur de idActivite et la valeur de jourActivite sur la console j ai ceci:


    idActivite: 208
    jourAc : null


    qu est ce qui ce passe au just !!

    Merci

  2. #2
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut
    Salut,

    Cette exception signifie que tu manipules une variable qui est null ou non instancié je ne sais pas comment ou le dit .
    Vu tes commentaires il semblerait que cela vienne de la variable jourAc.

    ++

  3. #3
    Provisoirement toléré
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Points : 79
    Points
    79
    Par défaut
    jourAc est une variable local dans la quelle j ai stocké :

    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
    public ActionForward editActivite(
    		         ActionMapping mapping,
    		         ActionForm form,
    		         HttpServletRequest request,
    		         HttpServletResponse response) 
    		         {
     
    PlanningForm planningForm = (PlanningForm) form;
     
    planningForm.setActiv(classemetierManager.getActiviteByPrimaryKey(id));
     
    String verifier2 = planningForm.getIdActivite();
    String verifier = planningForm.getJourActivite();
     
    System.out.println("idActivite :   "+verifier2);
    System.out.println("jourAc :"+verifier);


    voilà le code

    le PROBLEME: lorsque cette Action est executée

    elle m affiche une page dont les champs de modification sont VIDES !!

    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
    public ActionForward editActivite(
    		         ActionMapping mapping,
    		         ActionForm form,
    		         HttpServletRequest request,
    		         HttpServletResponse response) 
    		         {
    			  
    //instanciation du BEAN:  PlanningForm 
    
    		     PlanningForm planningForm = (PlanningForm) form;
     
    		     String id = String.valueOf(request.getParameter("idActivite"));
    
    // faire appel à la classe Métier:
    		          
    		     MetierManager classemetierManager = new MetierManager();
    
    //...............................:
     
    		     planningForm.setActivite(classemetierManager.getActiviteByPrimaryKey(id));
     
    
    //je recupere idActivite et JourActivite:
    		          
    		      String verifier = planningForm.getIdActivite();
    		     String verifier2 = planningForm.getJourActivite();
    
    //affichage des valeur recupérées:
     
    		      System.out.println("idActivite :"+verifier);
    		      System.out.println("jourAc     :"+verifier2);
     
    // envoi à la page de modification:
    		          
    		          return mapping.findForward("showEdit");
    		          }
    showEdit ==========> doit m envoyer vers une page plaine

    sur la console ====>
    idActivite : 208
    jourAc : null


    Probleme =========> l Action affiche une page JSP VIDE et lorsque je klik sur le bouton
    de validation j ai le message :



    12:41:14,993 WARN RequestProcessor:538 - Unhandled Exception thrown: class java.lang.NullPointerException
    12:41:14,993 ERROR [action]:253 - "Servlet.service()" pour la servlet action a généré une exception
    java.lang.NullPointerException
    at ma.cor.soft.pfe.metier.MetierManager.saveActivite(MetierManager.java:270)
    at ma.cor.soft.pfe.action.RechercherAction.saveActivite(RechercherAction.java:145)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    donc c'est quoi le probleme . ?

    Merci

  4. #4
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonsoir kamaldev,
    l'endroit ou tu as un bug, tu l'a sous les yeux dans tes logs affiches dans ta console. D'apres ton log, ton probleme vient de la ligne 270 de ta classe MetierManager (MetierManager.java:270). Une instance (laquelle??) n'est pas initialise correctement, et tu appelles une methode de cette instance alors quelle est null.

    Angelo

  5. #5
    Provisoirement toléré
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Points : 79
    Points
    79
    Par défaut
    Bonsoir

    oui dans cette ligne j ai ça:

    if (bookValue.getIdActivite() != null) {

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void saveActivite(Activite bookValue[/B].[) throws ParseException, java.text.ParseException {
    		    Session session = null;
    		    Transaction tx = null;
    		    try {
    		          session = Hibutil.currentSession();
                          tx = session.beginTransaction();
                          Activite aaa;
     
     		          if (bookValue.getIdActivite() != null) { 
       	                aaa = (Activite) session.get(Activite.class, book
                           ......
                           ......la suite.....


    la methode : saveActivite sont parametre est un Objet qu'elle va recevoir aprés. et cette Objet on le recupere soit par session ou par request je sais pas!!!

    voila l'Action:
    ==========
    et je pense que le prblm est dans: planningForm.getActiv() : le getter appliqué sur le BEAN :
    Donc la Question : le Bean planningForm doit etre defini dans une session ou une request ???????

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public ActionForward saveActivite(
    		         ActionMapping mapping,
    		         ActionForm form,
    		         HttpServletRequest request,
    		         HttpServletResponse response) throws ParseException, java.text.ParseException
    		         {
     
    			      PlanningForm planningForm = (PlanningForm) form;
    			      MetierManager classemetierManager = new MetierManager();
       			      classemetierManager.saveActivite(planningForm.getActiv());
    
     		            return mapping.findForward("showList");
    		         }

  6. #6
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Ton probleme vient effet de ta ligne de code
    planningForm.getActiv() qui doit retourner null, du coup lorsque tu fais bookValue.getIdActivite(), ton instance bookValue est null et tu as ton erreur.

    Ton formulaire PlanningForm, c struts qui te le popule en fonction des informations de ton formulaire JSP, normalement tu n'as pas a t'occuper de le remplir.

    planningForm.getActiv(), te retourne un objet metier Activite, je t'avoues que je ne faits pas comme ca. En ce qui me concerne, je construits mes objets metiers a partir de mes donnees de mon formulaire.
    Le getter getActiv(), est sense etre popule du formulaire. Moi ce que je ferais :
    * 1 supprimer le getter getActiv() de ton PlanningForm.
    * 2 definir tout tes getter/setter dans PlanningForm correspondant a tes informations correspondant a l'activite :
    getIdActivite(), setidActivite(), setNomActivite... (et dans ta JSP definir les input idActivite,....)
    3. Dans ton action tu construits un objet Activite que tu rempli avec ton formulaire

    Activite activite = new Activite();
    actvite.setId(plannigForm.getId(Activite()); .....

    4.Tu peux enfin appeler ta couche metier manager avec ton objet INSTANCIE et rempli correcetement :
    classemetierManager.saveActivite(actvite);

    Angelo

  7. #7
    Provisoirement toléré
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Points : 79
    Points
    79
    Par défaut we
    oui Merci e que tu viens de dire est just mais

    on peut ajouter le getter et le setter du l Objet Activite (le BEAN) !!

    en tt cas j essaye ce que t a proposé et je vous repond

Discussions similaires

  1. Probleme de modif d'un element d'un vecteur
    Par kikignou dans le forum Langage
    Réponses: 7
    Dernier message: 20/11/2006, 17h20
  2. [Validator] problème struts validator
    Par ge-lt dans le forum Struts 1
    Réponses: 2
    Dernier message: 05/07/2006, 15h55
  3. Probleme de modification du nom d'un attribut
    Par kenny49 dans le forum Access
    Réponses: 4
    Dernier message: 23/06/2006, 14h23
  4. Probleme de modification de couleur de JFrame
    Par canigu dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 21/12/2005, 01h51
  5. Réponses: 3
    Dernier message: 01/09/2005, 11h56

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