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 :

[Struts-Layout] valeur null dans la collectionItem


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Par défaut [Struts-Layout] valeur null dans la collectionItem
    bonjour,

    j'utilise une collection dans ma jsp voici une partie de son code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <layout:collection name="collectionForm" property="resultat" styleClass="PANEL" >
         <layout:collectionItem title="CODE TRANSACTION" property="code"></layout:collectionItem>
         <layout:collectionItem title="DESTINATAIRE" property="dest"></layout:collectionItem>
         <layout:collectionItem title="WAREHOUSE" property="whs"></layout:collectionItem>
         <layout:collectionItem title="DATE" property="date"></layout:collectionItem>
         <layout:collectionItem title="RESPONSABLE" property="resp"></layout:collectionItem>
         <layout:collectionItem title="BON TRANSACTION" property="bon">
           <layout:link page="/collection.do">Visualiser le bon</layout:link>
         </layout:collectionItem>
       </layout:collection>
      </body>
    je remplis cette collection avec le résultat d'une requete
    voici une partie du code:

    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
     
    ArrayList list = new ArrayList();
     
    rs = st.executeQuery("select .........");
     
    		while (rs.next())
    		{
     
    Article art = new Article();
    			art.setCode(rs.getString(1).trim()); 
    			art.setDate(rs.getString(4).trim());
    			art.setDest(rs.getString(2).trim());
    			art.setResp(rs.getString(5).trim());
    			art.setWhs(rs.getString(3).trim());
     
    			list.add(art);
    		}
    collectionForm.setResultat(list);


    ça march bien mais quand l'un des résultats de la requete est "null"
    par exemple: "rs.getString(1).trim()"=null
    c'est à dire qu'il va mettre dans "layout:collectionItem"une valeur null
    alors il n'affiche pas la collection et il me signal une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    null pointeur exception
    pourquoi dans une ligne de la collection "layout:collectionItem"ne peut pas etre vide ,il faut qu'elle soit remplise??
    sinon comment je dois corriger mon code ??
    merci de me répondre

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Essaie d'ajouter un tag logic:notEmpty dans le tag collectionItem.
    Pour que cela fonctionne, il faut ajouter l'attribut id dans le tag collection et un tag layout:write dans le tag logic:notEmpty comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <layout:collection name="collectionForm" property="resultat" id="article" styleClass="PANEL" >
         <layout:collectionItem title="CODE TRANSACTION">
            <logic:notEmpty name="article" property="code">
               <layout:write name="article" property="code"/>
            </logic:notEmpty>
         </layout:collectionItem>
         <layout:collectionItem title="DESTINATAIRE" property="dest"></layout:collectionItem>
         <layout:collectionItem title="WAREHOUSE" property="whs"></layout:collectionItem>
         <layout:collectionItem title="DATE" property="date"></layout:collectionItem>
         <layout:collectionItem title="RESPONSABLE" property="resp"></layout:collectionItem>
         <layout:collectionItem title="BON TRANSACTION" property="bon">
           <layout:link page="/collection.do">Visualiser le bon</layout:link>
         </layout:collectionItem>
       </layout:collection>
    A tester.

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Par défaut
    voila se que j'ai fait

    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
     
     <layout:collection name="collectionForm" property="resultat" styleClass="FORM" id="article">
         <layout:collectionItem title="CODE TRANSACTION" property="code"></layout:collectionItem>
         <layout:collectionItem title="DESTINATAIRE" property="dest">
           <logic:notEmpty name="article" property="dest">
               <layout:write name="article" property="dest"/>
            </logic:notEmpty>
     
         </layout:collectionItem>
         <layout:collectionItem title="WAREHOUSE" property="whs"></layout:collectionItem>
         <layout:collectionItem title="DATE" property="date"></layout:collectionItem>
         <layout:collectionItem title="RESPONSABLE" property="resp"></layout:collectionItem>
         <layout:collectionItem title="BON TRANSACTION" property="bon">
           <layout:link page="/collection.do">Visualiser le bon</layout:link>
         </layout:collectionItem>
       </layout:collection>
    la collonne (destinataire) est la collonne qui peut etre vide

    mais il me génère toujours la meme erreur
    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
     
    exception 
     
    javax.servlet.ServletException
    	org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
     
    cause mère 
     
    java.lang.NullPointerException
    	com.yourcompany.struts.action.CollectionAction.execute(CollectionAction.java:47)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

  4. #4
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Si tu avais bien regardé mon exemple, tu aurais vu que je n'ai pas mis l'attribut property dans le tag collectionItem.

    Il faut donc l'enlever comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
         <layout:collectionItem title="DESTINATAIRE">
           <logic:notEmpty name="article" property="dest">
               <layout:write name="article" property="dest"/>
            </logic:notEmpty>       
         </layout:collectionItem>

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2008
    Messages
    394
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 394
    Par défaut
    désolé pour l'erreur de tout à l'heure
    j'ai refait le code mais toujours la meme erreur

    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
     
    <layout:form action="/collection.do" method="post">
       <layout:text property="hidden" value="default" mode="H,H,H"></layout:text>
       <layout:collection name="collectionForm" property="resultat" styleClass="FORM" id="article">
         <layout:collectionItem title="CODE TRANSACTION" property="code" sortable="true"></layout:collectionItem>
         <layout:collectionItem title="DESTINATAIRE">
           <logic:notEmpty name="article" property="dest">
               <layout:write name="article" property="dest"/>
            </logic:notEmpty>
     
         </layout:collectionItem>
         <layout:collectionItem title="WAREHOUSE" property="whs"></layout:collectionItem>
         <layout:collectionItem title="DATE" property="date"></layout:collectionItem>
         <layout:collectionItem title="RESPONSABLE" property="resp"></layout:collectionItem>
         <layout:collectionItem title="BON TRANSACTION" property="bon" action="/recupere.do" paramId="code_art" paramProperty="code_art">
             <center>   Visualiser le bon   </center>
         </layout:collectionItem>
       </layout:collection>
    l'erreur

    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
     
    exception 
     
    javax.servlet.ServletException
    	org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
     
    cause mère 
     
    java.lang.NullPointerException
    	com.yourcompany.struts.action.CollectionAction.execute(CollectionAction.java:50)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

  6. #6
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    As-tu pensé à ajouter au début de la jsp la directive taglib qui pointe sur la tld struts-logic.tld ?

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

Discussions similaires

  1. [Struts-Layout] info bulle dans un collectionItem
    Par asm37 dans le forum Struts 1
    Réponses: 1
    Dernier message: 03/01/2008, 16h29
  2. Affcecter une valeur NULL dans une requete paramétrée
    Par thiouwz2 dans le forum Bases de données
    Réponses: 7
    Dernier message: 05/11/2004, 15h02
  3. [delphi 7 / DOA] valeur null dans setvariable
    Par delphim dans le forum Bases de données
    Réponses: 1
    Dernier message: 05/11/2004, 10h14
  4. ASP et valeur NULL dans requêtes SQL
    Par chuck_m dans le forum ASP
    Réponses: 7
    Dernier message: 13/08/2004, 11h15
  5. Passer une valeur Null dans un argument de procédure
    Par preempalver dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/12/2003, 20h52

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