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] help collectionInput


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Par défaut [Struts-Layout] help collectionInput
    Bonjour,

    Apres quelques recherches je suis tombé sur ce topic qui m'a bien aidé

    http://www.developpez.net/forums/sho....php?p=2053452

    Mais j'ai des soucis au niveau du collectionInput

    Mon arraylist a afficher est une classe Article qui possede une class prix et dessu je retrouve la valeur que je veux editer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <layout:form action="...">
    <layout:collection title="Liste des PA" property="articleList" indexId="index" styleClass="FORM" >
    	<layout:collectionItem title="Libellé" property="libelle"/>
    	<layout:collectionInput title="PA" property="Prix.prixAchat"  formProperty="Prix.prixAchat" />
    </layout:collection>
    <layout:submit>Enregistrer</layout:submit>
    </layout:form>
    j'aimerais pouvoir editer le prix facilement

    (en faisant ça : <layout:collectionItem title="PA" property="trPrix.prixAchat" /> ça m'affiche correctement le PA et si trPrix est a null, ou prixAchat, il n'y a pas de probleme non plus)

    Merci

  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
    Quel est le souci ? As-tu un message d'erreur ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Par défaut
    j ai cette erreur la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.servlet.jsp.JspException: No getter method available for property trPrix.prixAchat[0] for bean under name org.apache.struts.taglib.html.BEAN
    et j ai suivi ta façon de faire pour le Form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	public Prix getTrPrix(int index) {
    		return ((Article) this.articleList.get(index)).getTrPrix();
    	}
     
    	public void setTrPrix(int index, Prix trPrix) {
    		Article article = (Article) this.articleList.get(index) ;
    		article.setTrPrix(trPrix);
    		this.articleList.set(index,article) ;
    	}

  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
    Il doit falloir coder getter et setter indexés sur la propriété prixAchat dans l'ActionForm.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Par défaut
    j'ai reussi a faire mon getter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <layout:collectionInput title="PA" property="trPrix.prixAchat" formProperty="prixAchat" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public Double getPrixAchat(int index) {
    	Article article = (Article) this.articleList.get(index);
    	if (article.getTrPrix() == null)
    		return null;
    	return article.getTrPrix().getPrixAchat();
    }
    Mais je n'arrive pas a faire mon setter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	public void setPaValide(int index, Double paValide) {
    		Article article = (Article) this.articleList.get(index);
    		System.out.println("lib : "+article.getLibelle());
    		if (article.getTrPrix() == null) {
    			Prix p = new Prix();
    			p.setPaValide(paValide);
    			article.setTrPrix(p);
    		} 
    		else article.getTrPrix().setPaValide(paValide);
    		this.articleList.set(index, article);
    	}
    j ai une null pointer exception sur la premiere ligne de setPaValide :/

  6. #6
    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
    Billets dans le blog
    1
    Par défaut
    Je ne vois pas pour ma part ce qui pourrait planter sur la première ligne...
    Par contre, à partir de la deuxième (this.articleList.get(index)) oui si tu n'utilises pas la session.
    Peux-tu vérifier ceci ?

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Par défaut
    oui c est la ou tu dis que ça plante, c'est la premiere ligne de la fonction si tu preferes (je me suis peut etre mal exprimé)

    sinon je débute sur struts et jsp, donc je sais pas trop pour la session.

    peut tu m'expliquer ce qu'il faudrait faire pour que ça plante pas ?

  8. #8
    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
    Billets dans le blog
    1
    Par défaut
    Dans le fichier struts-config.xml, tu vas trouver (ou positionner) dans la déclaration de ton action l'attribut "scope" comme par exemple ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <action input="login" name="LoginForm" parameter="action"
       path="/login" scope="request" type="clemessy.struts.tools.login.LoginAction" validate="true">
       <forward name="succes" path="modele" redirect="true"/>
       <forward name="default" path="login"/>
       <forward name="error" path="login"/>
    </action>
    Donc :

    - scope = request => l'ActionForm est créé pour LE request

    - scope = session => l'ActionForm est créé et stocké dans la session (il existera donc jusqu'à la fin de la session, quand l'utilisateur fermera le navigateur)

    Dans ton cas, tu as une liste de valeurs, avec un scope request :

    - tu passes par l'Action, tu charges la liste que tu passes à la page. La construction est correcte, la page s'affiche. Quand tu valides la page, tu repasses par l'ActionForm (pour l'affectation des valeurs aux champs) mais ta liste n'existe plus (-> NullPointerException)

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/07/2007, 10h42
  2. Réponses: 6
    Dernier message: 22/06/2007, 16h51
  3. [Struts-Layout] Comment utiliser collectionInput
    Par spidereck dans le forum Struts 1
    Réponses: 12
    Dernier message: 14/05/2007, 22h31
  4. [Struts-Layout] gestion des css
    Par pilz dans le forum Struts 1
    Réponses: 2
    Dernier message: 18/05/2005, 10h23
  5. [struts]Documentation Struts-layout
    Par GreenJay dans le forum Struts 1
    Réponses: 5
    Dernier message: 14/06/2004, 12h51

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