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] collection comment récupérer mes données


Sujet :

Struts 1 Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 59

    Informations forums :
    Inscription : Novembre 2005
    Messages : 41
    Points : 34
    Points
    34
    Par défaut [Struts-Layout] collection comment récupérer mes données
    J'ai un tableau de collection dont voici le 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
    19
    20
    <layout:collection  property="allCalendriers" align="center" styleClass="ligneClaire"  styleClass2="ligneFonce" width="100%">
    	<layout:collectionTitle title=""styleClass="intituleTableau police">
                    <layout:collectionItem styleClass="center" width="500px"title="" property="idCommission" />
    	</layout:collectionTitle>
    	<layout:collectionTitle title="campagne.libelle.limite.validation.pole"  styleClass="intituleTableau police">
                    <layout:collectionInput title="" property="stringDateLimiteSaisie" formProperty="stringDateLimiteSaisie" />
    	</layout:collectionTitle>
    	<layout:collectionTitle title="campagne.libelle.edition.odj" styleClass="intituleTableau police">
    		<layout:collectionInput title=""  property="stringDateEditOdj" formProperty="stringDateEditOdj"/>
    	</layout:collectionTitle>
    	<layout:collectionTitle title="campagne.libelle.commission"  styleClass="intituleTableau police">
    		<layout:collectionInput title=""  property="stringDateDateCommission" formProperty="stringDateDateCommission"/>
    	</layout:collectionTitle>
    	<layout:collectionTitle  title="campagne.libelle.disponibilite" styleClass="intituleTableau police">
    		<layout:collectionInput title="" property="stringDateAvis" formProperty="stringDateAvis"/>
    	</layout:collectionTitle>
            <layout:collectionTitle  title="campagne.libelle.limite.edition.pv"  styleClass="intituleTableau police">
    		<layout:collectionInput  title="" property="stringDateEditPv" formProperty="stringDateEditPv"/>
    	</layout:collectionTitle>
    </layout:collection>
    J'ai un formBean avec les attributs suivants
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class CalendrierCommissionFormBean extends ValidatorActionForm {
    	private Long id = new Long (-1);
    	private List allCalendriers;
    	private String dateRef;
    	private String dateDemarrage;
    	private String dateLimiteValidation;
    	private String dateLimiteDotation;
    	private String dateDemarrageProposition;
    	private String dateExportSap;
    les getteurs et les setteurs qui vont bien.

    Mais lorque je veux envoyer via un form j'ai l'erreur suivante:
    org.apache.struts.action.RequestProcessor Unhandled Exception thrown: class java.lang.NullPointerException
    [04/06/07 18:13:37:039 CEST] 73ffc054 WebGroup E SRVE0026E: [Erreur de servlet]-[]: java.lang.NullPointerException
    at fr.cea.saclay.dti.gdai.action.calendrier.CalendrierCommissionAction.doSave(CalendrierCommissionAction.java:139)
    at fr.cea.saclay.dti.gdai.action.GdaiAction.execute(GdaiAction.java:46)
    l'erreur me renvoie à la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Iterator iter= monForm.getAllCalendriers().iterator();
    et la méthode getAllCalendriers est écrite dans mon form bean comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public List getAllCalendriers()
    {
    	return allCalendriers;
    }
    dernière remarque, lorsque je lis le code de ma page je ne trouve pas trace de allCalendriers comme le prouve mon extrait suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    tr valign="top"><th class="intituleTableau police"></th><th class="intituleTableau police">Date limite de validation pôle</th><th class="intituleTableau police">Edition ODJ</th><th class="intituleTableau police">Commission</th><th class="intituleTableau police">Disponibilité des notifications</th><th class="intituleTableau police">Edition du pv</th></tr>
    <tr valign="top"><th class="center" width="500px"></th><th class="ligneClaire"></th><th class="ligneClaire"></th><th class="ligneClaire"></th><th class="ligneClaire"></th><th class="ligneClaire"></th></tr>
    <tr>
    <td class="center">1</td>
    <td class="ligneFonce"><input type="text" name="stringDateLimiteSaisie[0]" value=""></td>
    <td class="ligneFonce"><input type="text" name="stringDateEditOdj[0]" value=""></td>
    <td class="ligneFonce"><input type="text" name="stringDateDateCommission[0]" value=""></td>
    <td class="ligneFonce"><input type="text" name="stringDateAvis[0]" value=""></td>
    <td class="ligneFonce"><input type="text" name="stringDateEditPv[0]" value=""></td>							
    </tr><tr>
    <td class="center">2</td>
    <td class="ligneClaire"><input type="text" name="stringDateLimiteSaisie[1]" value=""></td>
    <td class="ligneClaire"><input type="text" name="stringDateEditOdj[1]" value=""></td>
    Voila si quelqu'un à une idée, je suis preneur. En plus je suis sur que c'est une bétise....

  2. #2
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    As-tu mis scope="session" pour le form-bean CalendrierCommissionFormBean dans le mapping de l'Action CalendrierCommissionAction ?

    EDIT : Il est normal que la collection n'apparaisse pas dans le code source car la mise à jour de la collection se fait via les getters et setters sur propriétés indexées codés dans l'ActionForm.
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 59

    Informations forums :
    Inscription : Novembre 2005
    Messages : 41
    Points : 34
    Points
    34
    Par défaut
    Je n'avais pas mis le scope session.
    Maintenant je vois ma liste mais je ne récupère pas les valeurs modifiées de cette liste

  4. #4
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Dans l'ActionForm, tu as bien codé les getters et setters sur les propriétés indexées comme expliqué dans cette discussion ?
    Modératrice Java - Struts, Servlets/JSP, ...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 59

    Informations forums :
    Inscription : Novembre 2005
    Messages : 41
    Points : 34
    Points
    34
    Par défaut
    Il me semble que oui.

  6. #6
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Dans la jsp, une des propriétés de la collection s'appelle stringDateLimiteSaisie.
    Or, dans ton form-bean, je ne vois pas de propriété définie avec ce nom-là.
    Peux-tu montrer comment tu as codé dans ton ActionForm le getter et le setter sur une des propriétés que tu affiches dans la jsp ?
    Modératrice Java - Struts, Servlets/JSP, ...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 59

    Informations forums :
    Inscription : Novembre 2005
    Messages : 41
    Points : 34
    Points
    34
    Par défaut
    j'ai un peu modifié ma jsp

    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:collection  property="allCalendriers" align="center" styleClass="ligneClaire"  styleClass2="ligneFonce" width="100%">
    	<layout:collectionTitle title=""styleClass="intituleTableau">
    	<layout:collectionItem  width="500px"title="" property="idCommission" />
    	</layout:collectionTitle>
    	<layout:collectionTitle title="campagne.libelle.limite.validation.pole"  styleClass="intituleTableau police">
    	<layout:collectionInput title="" property="dateLimiteSaisie" formProperty="dateLimiteSaisie" size="10"/>
    	</layout:collectionTitle>
    	<layout:collectionTitle title="campagne.libelle.edition.odj" styleClass="intituleTableau police">
    	<layout:collectionInput title=""  property="dateEditOdj" formProperty="dateEditOdj" size="10"/>
    	</layout:collectionTitle>
    	<layout:collectionTitle title="campagne.libelle.commission"  styleClass="intituleTableau police">
    	<layout:collectionInput title=""  property="dateDateCommission" formProperty="dateDateCommission" size="10"/>
    	</layout:collectionTitle>
    	<layout:collectionTitle  title="campagne.libelle.disponibilite" styleClass="intituleTableau police">
    	<layout:collectionInput title="" property="dateAvis" formProperty="dateAvis" size="10"/>
    	</layout:collectionTitle>
    	<layout:collectionTitle  title="campagne.libelle.limite.edition.pv"  styleClass="intituleTableau police">
    	<layout:collectionInput  title="" property="dateEditPv" formProperty="dateEditPv" size="10"/>						</layout:collectionTitle>
    et dans mon form j' ai des getteurs et setteurs comme suit:
    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
    	public Date getDateLimiteSaisie(int index)
    		{
    			log.debug("getDateLimiteSaisie "+((CalendrierCommission) this.allCalendriers.get(index)).getIdCommission());
    			return ((CalendrierCommission) this.allCalendriers.get(index)).getDateLimiteSaisie() ;
    		}
    	/**
                     * @param index,dateLimiteSaisie
                     * enregistre la date Limite de Saisie
                     */
    	public void setDateLimiteSaisie(int index,String dateLimiteSaisie)
    		{
    			CalendrierCommission cc=(CalendrierCommission)this.allCalendriers.get(index);
    			cc.setStringDateLimiteSaisie(dateLimiteSaisie);
    			this.allCalendriers.set(index,cc) ;
    		}

  8. #8
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Peut-être un problème de type. Ton getter renvoie un champ de type Date et ton setter écrit un champ de type String.
    Je pense qu'il serait mieux d'utiliser le type String dans les deux cas.

    As-tu vérifié que le setter était bien exécuté ?
    Tu n'as aucun message d'erreur ?
    Modératrice Java - Struts, Servlets/JSP, ...

  9. #9
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 59

    Informations forums :
    Inscription : Novembre 2005
    Messages : 41
    Points : 34
    Points
    34
    Par défaut
    Un grand merci à toi au modératrice

  10. #10
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 59

    Informations forums :
    Inscription : Novembre 2005
    Messages : 41
    Points : 34
    Points
    34
    Par défaut
    Est-il possible d'ajouter des régles de validation sur les différents champs de ma layout collection en utilisant le validator de struts .Je pense qu'il faut indexer les champs ?Je dis une bétise ?

  11. #11
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Sincèrement, je ne sais pas si c'est possible mais j'en doute.
    Faudrait regarder dans la doc du Validator.
    Modératrice Java - Struts, Servlets/JSP, ...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/11/2009, 22h50
  2. [Disque Dur] Comment récupérer mes données avec accès refusé
    Par ploukinet dans le forum Composants
    Réponses: 2
    Dernier message: 31/01/2009, 15h36
  3. comment récupérer mes données
    Par ballantine's dans le forum VB.NET
    Réponses: 1
    Dernier message: 11/02/2008, 11h34
  4. Réponses: 4
    Dernier message: 03/12/2007, 14h58
  5. Comment récupérer mes données ou ma partition
    Par pierrot10 dans le forum Windows XP
    Réponses: 1
    Dernier message: 28/08/2007, 10h38

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