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 :

Modifier et sauvegarder les valeurs d'un tableau


Sujet :

Struts 1 Java

  1. #21
    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
    Juste pour te prévenir que j'ai corrigé le code que je t'ai donné dans le message précédent. Je l'ai regardé à tête reposée et je me suis rendue compte qu'il était faux.

  2. #22
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Merci de pour votre code c_nvy ,c vraiment gentil.

    Cependant j'ai quelques questions :

    Pkoi vous avez éliminé le premier element (kesk vous sous entendez par premier record)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     if ( i != 0 )
    ......
    Deuxiement on devrait employé un iteme de budgetType pr lui appliqué les methodes get et set car on ne peut les appliqués sur une liste.

    Et si j'ai bien compris financeList contiedera des objets triés par type et à l'interieur de ces objet on trouvera un ordre mensuel c ça ?

    Je sens que j'y suis presque c_nvy parceque c'est le code dont j'avait besoin mais il reste just quelques détails à éclairsir .

  3. #23
    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
    Citation Envoyé par Viscapon Voir le message
    Pkoi vous avez éliminé le premier element (kesk vous sous entendez par premier record)
    Je n'élimine pas le premier élément mais j'ajoute l'objet finance dans la liste financeList à chaque rupture sur le type sauf la première rupture.

    En effet, si on enlève le test suivant :
    à la lecture du premier élément de la liste budgetTypeList, on ajoutera l'objet finance (avant même de l'avoir rempli) dans la liste financeList puisque le type étant initialisé à blanc avant d'itérer, il est automatiquement différent du premier type contenu dans la liste budgetTypeList.

    Si tu ne comprends pas ça, tu n'as qu'à enlever ce test et tu verras le résultat obtenu en affichant le contenu de la liste financeList.

    Citation Envoyé par Viscapon Voir le message
    Deuxiement on devrait employé un iteme de budgetType pr lui appliqué les methodes get et set car on ne peut les appliqués sur une liste.
    Jette un oeil au code et tu verras que c'est ce que j'ai corrigé.

  4. #24
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    puisque le type étant initialisé à blanc avant d'itérer, il est automatiquement différent du premier type contenu dans la liste budgetTypeList.
    Ok maintenant je voit très bien votre idée . J'ai eu quelques difficultés au début pr comprendre ce passage ,car je voulais initialiser le type par l'une des 4 valeurs que je connait déja(on se complique la vie parfois).

    Et désole pr ma 2eme remarque j'avait pas fait attention à la ligne que vous avez rajouter lors de la correction.

  5. #25
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Une question consrnant le tag nested:Est ce que j'aurais besoin d'intrduire des bibliothèques ,importer ou ajouter des lignes à l'entete de ma page jsp si je veut l'utiliser?

    Une autre remarque : Dans mon formeBean lié a mon action , je déclarerais selement le getter et le setter de la collection et de l'année(getFianceList,setfinanceListe,getAnne,setAnnee) ,car les autres ont été declarés dans la class Finance.

  6. #26
    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
    Citation Envoyé par Viscapon Voir le message
    Une question consrnant le tag nested:Est ce que j'aurais besoin d'intrduire des bibliothèques ,importer ou ajouter des lignes à l'entete de ma page jsp si je veut l'utiliser?
    Il faut effectivement ajouter au début de la jsp la directive taglib qui pointe sur la tld des nested.
    Citation Envoyé par Viscapon Voir le message
    Une autre remarque : Dans mon formeBean lié a mon action , je déclarerais selement le getter et le setter de la collection et de l'année(getFianceList,setfinanceListe,getAnne,setAnnee) ,car les autres ont été declarés dans la class Finance.
    Tout à fait.

  7. #27
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Bon après avoir adapter le code et ajouter les données spécifiques,je me suit retouvé face à une erreur qui est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    exception 
     
    org.apache.jasper.JasperException: No collection found
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    Comme vous pouvez le constater il ne trouve pas la collection ,et si je me trompe pas il s'agit de la finaceListe associée au form de l'action.

  8. #28
    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
    Après avoir constitué la collection, mets-tu bien à jour la propriété financeList de l'ActionForm via le setter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TonActionForm tonActionForm = (TonActionForm) form ;
    tonActionForm.setFinanceList(financeList) ;
    Sinon, peux-tu montrer le code de la jsp ?

  9. #29
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Voici le code ma jsp :

    Consulatation1.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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <%@ page language="java" pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%> 
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
    <%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
     
    <html> 
    	<head>
    		<title>JSP for Consultation1Form form</title>
    	</head>
    	<body>
    		<html:form action="/consultation1">
    		<nested:iterate property="financeList">
          typ:<nested:write property="type"/><br/>
          jav:<nested:text property="jan"/><br/>
          fev:<nested:text property="fev"/><br/>
          mars:<nested:text property="mar"/><br/>
          avril:<nested:text property="avr"/><br/>
          mai:<nested:text property="mai"/><br/>
          juin:<nested:text property="jun"/><br/>
          juil:<nested:text property="jul"/><br/>
          aout:<nested:text property="aou"/><br/>
          sep:<nested:text property="sep"/><br/>
          oct:<nested:text property="oct"/><br/>
          nov:<nested:text property="nov"/><br/>
          dec:<nested:text property="dec"/><br/>
       </nested:iterate>
     
     
    			annee : <html:select property="annee" onchange="submit();">
     
    			<html:option value ="2007">2007</html:option>
                <html:option value ="2008">2008</html:option>
                <html:option value ="2009">2009</html:option>
                <html:option value ="2010">2010</html:option>
              </html:select>
    			<br/>
     
    		</html:form>
    	</body>
    </html>

  10. #30
    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
    Mais l'Action qui remplit la liste est bien celle qui s'exécute avant l'affichage de la jsp ?

  11. #31
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Bon en fait j'ai esseyé d'adabter le code que vous m'avez proposer, certes j'ai quelques doutes concernant mon action ,mais bon voila mon code :

    Consulmataion1Action.java:

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
     
    public class Consultation1Action extends Action {
     
    	public static Integer anne=2008;
     
    	public static List<BudgetType> budgetTypeList = test1.BudgetType(anne);
    	public static ArrayList<Finance> financeList = new ArrayList<Finance>() ;
    	String typf="" ;
      public Finance finance=null;
      {
    	for ( int i=0; i< budgetTypeList.size() ; i++)
    	{
    		BudgetType budgetType=(BudgetType) budgetTypeList.get(i) ;
    		if ( ! typf.equals(budgetType.getType()))
    				{
    				if ( i != 0 )
    				{ financeList.add(finance) ; }
     
    				finance = new Finance() ;
    			     finance.setType(budgetType.getType()) ;
    			     if ( budgetType.getMois().equals("jav"))
    			        { finance.setJav(budgetType.getBudget());} 
    		else
    		   {
    		      if ( budgetType.getMois().equals("fev"))
    		         { finance.setFev(budgetType.getBudget()) ;} 
    		      if (budgetType.getMois().equals("mars"))
    		         { finance.setMars(budgetType.getBudget()); } 
    		      if ( budgetType.getMois().equals("avril"))
    		         { finance.setAvril(budgetType.getBudget()) ;} 
    		      if (budgetType.getMois().equals("mai"))
    		         { finance.setMai(budgetType.getBudget()); } 
    		      if ( budgetType.getMois().equals("juin"))
    		         { finance.setJuin(budgetType.getBudget()) ;} 
    		      if (budgetType.getMois().equals("juil"))
    		         { finance.setJuil(budgetType.getBudget()); } 
    		      if ( budgetType.getMois().equals("aout"))
    		         { finance.setAout(budgetType.getBudget()) ;} 
    		      if (budgetType.getMois().equals("sep"))
    		         { finance.setSep(budgetType.getBudget()); } 
    		      if ( budgetType.getMois().equals("oct"))
    		         { finance.setOct(budgetType.getBudget()) ;} 
    		      if (budgetType.getMois().equals("nov"))
    		         { finance.setNov(budgetType.getBudget()); } 
    		      if ( budgetType.getMois().equals("dec"))
    		         { finance.setDec(budgetType.getBudget()) ;} 
     
    		   }
    		   }     
     
    		typf=budgetType.getType() ;
    		 if ( i == budgetTypeList.size() - 1 )
    	       { financeList.add(finance) ;}
     
    		// consultation1Form.setFinanceList(financeList) ;
     
    	}}
    	public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) {
    		Consultation1Form consultation1Form = (Consultation1Form) form;// TODO Auto-generated method stub
    		Integer anneeSelected=consultation1Form.getAnnee();
    		consultation1Form.setAnnee(anneeSelected);
    		consultation1Form.setFinanceList(financeList) ;
    		return mapping.findForward("all");
     
    	}
    }
    Bon ,faut savoir aussi que j'utilise myeclipse pour generer mes formes et autres.

  12. #32
    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
    Mais ton code de constitution de liste n'est même pas dans une méthode. Et il n'est pas appelé dans la méthode execute.
    De plus, il ne faut pas définir des variables d'instance dans une Action, sauf si elles peuvent être partagées par tous les utilisateurs.

    Et puis, l'Action Consultation1Action s'exécute au submit du formulaire. Il est donc normal qu'il ne trouve pas la collection au premier affichage étant donné que le code qui la constitue n'a pas encore été exécuté.

    Dans ce cas, il faut que tu ajoutes un tag logic:notEmpty pour conditionner l'affichage de la collection.
    Il est aussi étonnant que tu mettes le code d'affichage de la collection avant celui de la liste déroulante étant donné que c'est la sélection dans la liste déroulante qui déclenche l'affichage de la collection.

    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
    <html:form action="/consultation1">
       annee : <html:select property="annee" onchange="submit();">
     		<html:option value ="2007">2007</html:option>
                <html:option value ="2008">2008</html:option>
                <html:option value ="2009">2009</html:option>
                <html:option value ="2010">2010</html:option>
              </html:select>
    	<br/>
     
       <logic:notEmpty name="consultation1Form" property="financeList">
     
          <nested:iterate property="financeList">
     
          typ:<nested:write property="type"/><br/>
          jav:<nested:text property="jan"/><br/>
          fev:<nested:text property="fev"/><br/>
          mars:<nested:text property="mar"/><br/>
          avril:<nested:text property="avr"/><br/>
          mai:<nested:text property="mai"/><br/>
          juin:<nested:text property="jun"/><br/>
          juil:<nested:text property="jul"/><br/>
          aout:<nested:text property="aou"/><br/>
          sep:<nested:text property="sep"/><br/>
          oct:<nested:text property="oct"/><br/>
          nov:<nested:text property="nov"/><br/>
          dec:<nested:text property="dec"/><br/>
          </nested:iterate>
       </logic:notEmpty>		
     
    </html:form>
    Dans ce code, j'ai supposé que consultation1Form était le nom du form-bean.
    A toi de le modifier en conséquence.

    N'oublie pas de modifier le code de l'Action en mettant le code de constitution de la liste dans une méthode et en appelant cette méthode dans la méthode execute.

  13. #33
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Dois-je créer donc une methode en dehors de mon action (à déclarer dans une autre class)qui chargera ma collection puis l'appeler dans l'excute de l'action ?

  14. #34
    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
    Ce serait effectivement plus propre de créer une méthode qui renvoie l'ArrayList financeList dans une autre classe et d'appeler cette méthode dans l'Action.

  15. #35
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Je viens de faire les choses plus proprement comme convenu,mais cette fois dans ma page je n'est que la liste déroulante des années et rien d'autres .

    Ce qui m'a fait repenser au code du chragement de la liste ,et je doit dire que j'ai soulvé quelques nuances que j'arrive pas tres bien à comprendre dans votre algorithme c_nvy surtout ce passage :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
     finance.setType(budgetType.getType()) ;
    			     if ( budgetType.getMois().equals("jav"))
    			        { finance.setJav(budgetType.getBudget());} }
    		else
    		   {
    		      if ( budgetType.getMois().equals("fev"))
    		         { finance.setFev(budgetType.getBudget()) ;} 
    		      if (budgetType.getMois().equals("mars"))
    		         { finance.setMars(budgetType.getBudget()); } 
     
    .....
    Pkoi vous traitez le mois Jav à part ,et vous rassembler les autres mois dans un seul else ,y a t il quelque chose dérrière ?

  16. #36
    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
    Tout simplement parce que si les données sont bien triées par type et mois, à chaque fois qu'il y a une rupture sur le type, la ligne lue devrait contenir le mois de Janvier.
    Mais après réflexion, ça ne peut fonctionner que lorsque les mois sont de type numériques car ils seront bien triés dans le bon ordre (01,02,03,...,12).
    Or, il est vrai que dans ton cas, les mois sont de type String. Le mois de Janvier, soit jav, ne sera donc pas le premier mois lu.
    Dans ce cas, il faut effectivement revoir l'algorithme.

  17. #37
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Mais s'il n'existait pas des pudget pr les mois de janvier ?ça donnerait quoi dans ce cas ?

    Excuse moi d'avoir à poser tt ces questions . Mais il me manque quelques truc à comprendre dans votre algo surtout vers la fin .

    Rq :Est ce que je pourrait utiliser un while (type =...) à l'interieur de la boucle for pour avoir tout les budgets d'un type donné puis les affécter par mois par un simple if .

    Car je croit pas que l'ordre par mois soit important apres reflexion.
    Se sont des prprety qui vont etre recupérer via le nested.Pas vrai ?

  18. #38
    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
    Quand j'ai donné cet exemple de code, j'ai bien précisé qu'il n'était pas optimisé.C'était juste pour te donner une idée de comment procéder pour constituer la liste finale qui permette l'affichage et ensuite la modification via les tags nested.
    Ce problème est un problème de programmation et non un problème Struts.

  19. #39
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Points : 67
    Points
    67
    Par défaut
    Bon après reflexion j'ai réussi à trouver un code qui fera l'affaire pr charger ma liste , cependant le nested n'affiche rien sur ma jsp j'ai just la liste déroulante .Pkoi les champs associés au tag nested restent -elles invisibles ?

    Bon voila mon nouveau code pour charger la liste :


    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
    37
    38
    39
    40
    41
    42
     
     
    public static List<BudgetType> budgetTypeList = test1.getbudgetType(Consultation1Action.anny);
    	public static ArrayList<Finance> financeList = new ArrayList<Finance>() ;
     
      public static Finance finance1=null;
      public static Finance finance2=null;
     
      public static ArrayList<Finance> chargerList(){
    	for ( int i=0; i< budgetTypeList.size() ; i++)
    	{
     
    		if (budgetTypeList.get(i).getType().equals("type1")){
     
    			finance1 = new Finance() ;
    			finance1.setType(budgetTypeList.get(i).getType()) ;
    			if ( budgetTypeList.get(i).getMois().equals("jav"))
    	        { finance1.setJav(budgetTypeList.get(i).getBudget());}
    			else if(budgetTypeList.get(i).getMois().equals("fev")){
    				 { finance1.setFev(budgetTypeList.get(i).getBudget());}
    			}
     
    		}
     
    		else if (budgetTypeList.get(i).getType().equals("type2")){
    			finance2 = new Finance() ;
    			finance2.setType(budgetTypeList.get(i).getType()) ;
    			if ( budgetTypeList.get(i).getMois().equals("jav"))
    	        { finance2.setJav(budgetTypeList.get(i).getBudget());}
    			else if(budgetTypeList.get(i).getMois().equals("fev")){
    				 { finance2.setFev(budgetTypeList.get(i).getBudget());}
    			}
     
    		}
    		if ( i == budgetTypeList.size() - 1 )
    	       { financeList.add(finance1) ;
    	       financeList.add(finance2) ;
    	       }
     
     
    	}return financeList;
    	}

    par contre pour la jsp (consultation1.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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    <%@ page language="java" pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%> 
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
    <%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
     
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
    <html> 
    	<head>
    		<title>JSP for Consultation1Form form</title>
    	</head>
    	<body>
    		<html:form action="/consultation1">
    		  annee : <html:select property="annee" onchange="submit();">
     
    			<html:option value ="2007">2007</html:option>
                <html:option value ="2008">2008</html:option>
                <html:option value ="2009">2009</html:option>
                <html:option value ="2010">2010</html:option>
              </html:select>
    			<br/>
     
    		  <logic:notEmpty name="consultation1Form" property="financeList">
     
          <nested:iterate property="financeList">
     
          typ:<nested:write property="type"/><br/>
          jav:<nested:text property="jav"/><br/>
          fev:<nested:text property="fev"/><br/>
          mars:<nested:text property="mars"/><br/>
          avril:<nested:text property="avril"/><br/>
          mai:<nested:text property="mai"/><br/>
          juin:<nested:text property="juin"/><br/>
          juil:<nested:text property="juil"/><br/>
          aout:<nested:text property="aout"/><br/>
          sep:<nested:text property="sep"/><br/>
          oct:<nested:text property="oct"/><br/>
          nov:<nested:text property="nov"/><br/>
          dec:<nested:text property="dec"/><br/>
     </nested:iterate>
       </logic:notEmpty>	
     
    		</html:form>
    	</body>
    </html>
    Et finallement mon Consultatio1Action :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class Consultation1Action extends Action {
     
    	public static Integer anny ;
    	public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) {
    		Consultation1Form consultation1Form = (Consultation1Form) form;// TODO Auto-generated method stub
    	 Integer anneeSelected=consultation1Form.getAnnee();
    		anny=anneeSelected ;
    		//consultation1Form.setAnnee(anneeSelected);
    		consultation1Form.setFinanceList(Charger.financeList) ;
    		return mapping.findForward("all");
     
    	}
    Est que j'ai oublier un truc par hazard consernat le tag nested .

  20. #40
    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
    Le problème ne vient pas des tags nested mais tu ne fais pas appel à la méthode chargerList() dans ton Action.
    De plus, plutôt que de définir une variable d'instance anny dans l'Action, ce qui est déconseillé, tu devrais plutôt passer l'année en paramètre de la méthode chargerList.

    Méthode chargerList :
    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
    37
    38
    39
    public static ArrayList<Finance> chargerList(Integer annee)
    {
          List<BudgetType> budgetTypeList = test1.getbudgetType(annee);
          ArrayList<Finance> financeList = new ArrayList<Finance>() ;
          Finance finance1=null;
          Finance finance2=null;
     
    	for ( int i=0; i< budgetTypeList.size() ; i++)
    	{
     
    		if (budgetTypeList.get(i).getType().equals("type1")){
     
    			finance1 = new Finance() ;
    			finance1.setType(budgetTypeList.get(i).getType()) ;
    			if ( budgetTypeList.get(i).getMois().equals("jav"))
    	        { finance1.setJav(budgetTypeList.get(i).getBudget());}
    			else if(budgetTypeList.get(i).getMois().equals("fev")){
    				 { finance1.setFev(budgetTypeList.get(i).getBudget());}
    			}
     
    		}
     
    		else if (budgetTypeList.get(i).getType().equals("type2")){
    			finance2 = new Finance() ;
    			finance2.setType(budgetTypeList.get(i).getType()) ;
    			if ( budgetTypeList.get(i).getMois().equals("jav"))
    	        { finance2.setJav(budgetTypeList.get(i).getBudget());}
    			else if(budgetTypeList.get(i).getMois().equals("fev")){
    				 { finance2.setFev(budgetTypeList.get(i).getBudget());}
    			}
     
    		}
    		if ( i == budgetTypeList.size() - 1 )
    	       { financeList.add(finance1) ;
    	       financeList.add(finance2) ;
    	       }
    	}
          return financeList;
    }
    Code de l'Action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class Consultation1Action extends Action
    {
       public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
       {
    	Consultation1Form consultation1Form = (Consultation1Form) form;
    	Integer anneeSelected=consultation1Form.getAnnee();
    	consultation1Form.setFinanceList(Charger.chargerList(anneeSelected) ;
    	return mapping.findForward("all");
       }		
    }
    Et sinon, concernant les directives taglib dans la jsp, tu peux utiliser les uri pour les tld logic et nested comme pour les tlds html et bean :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %> 
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-nested" prefix="nested" %> 
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
    Je précise que je n'ai pas vérifié la logique du code de la méthode chargerList().

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Je n'arrive pas a modifier les valeurs de mon tableau via mon UserForm
    Par Patouillou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/02/2015, 17h15
  2. Modifier et sauvegarder une valeur dans un tableau
    Par pixi777 dans le forum jQuery
    Réponses: 8
    Dernier message: 06/08/2013, 10h50
  3. foreach ne modifie pas les valeurs d'un tableau
    Par tintin72 dans le forum Langage
    Réponses: 11
    Dernier message: 07/05/2012, 10h15
  4. Réponses: 1
    Dernier message: 23/12/2010, 11h01
  5. [PHP 5.2] modifier les valeurs d'un tableau par un formulaire
    Par dr_feelgood dans le forum Langage
    Réponses: 2
    Dernier message: 01/08/2009, 13h00

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